Hallo zusammen,
ich möchte eine Mini Ampel als Erweiterung unseres Playmobil Sammelsurium zu bauen.
Als Basis dient ein Arduino Nano Board, das Programm ist auch schon fertig.
Nun aber zu meinem Problem. Mir kam die Idee, den Arduino mittels einer sehr schlanken Schaltung vom Strom zu trennen.
Mittels eines Tasters soll der Arduino mit Strom versorgt werden und aufwachen. Direkt beim Setup wird ein digitaler Ausgang geschaltet, welcher
einen bipolarer Transistor versorgt (an Basis). Dieser wiederum sorgt dann mit dem Durchlassen des Stroms dafür, dass der Arduino Nano über den Transistor so lange mit Strom versorgt wird, bis am Ende des Ampelprogramms der digitale Ausgang den Transistor trennt und damit die Stromversorgung unterbricht.
Leider geht der Arduino jetzt schon direkt an, obwohl ja der digitale Ausgang noch garnicht schalten hätte können, da ja an der Basis noch nichts anliegt. Dennoch geht er an. Trenne ich die Basis vom digitalen Ausgang, geht er nicht mehr an. Wie kann der Transistor durchgängig sein, wenn der Arduino noch aus ist?
Mittels eines Tasters soll der Arduino mit Strom versorgt werden und
aufwachen. Direkt beim Setup wird ein digitaler Ausgang geschaltet,
welcher
einen bipolarer Transistor versorgt (an Basis). Dieser wiederum sorgt
dann mit dem Durchlassen des Stroms dafür, dass der Arduino Nano über
den Transistor so lange mit Strom versorgt wird, bis am Ende des
Ampelprogramms der digitale Ausgang den Transistor trennt und damit die
Stromversorgung unterbricht.
Schaltpläne in Prosa sind scheisse.
Zeige einen - wie auch immer gezeichneten - Schaltplan.
Wie kann der Transistor durchgängig sein, wenn der Arduino noch aus ist?
Üblicherweise kommt sowas von einem Fehler in der Schaltung oder im Aufbau. Deshalb kann man nur dann sinnvoll helfen, wenn man eibrn Schaltplan und Fotos vom Aufbau hat.
Weil die Aufgabe so alltäglich ist: hast du einfach mal geschaut,wie andere das machen, oder hast du die Schaltung zum 1000 und ersten Mal neu erfunden?
Man muss nur den Taster T1 und einen Ausgang vom Arduino mit zwei Dioden, oder einer BAV70 ODER-verknüpfen und anschließend auf die LED vom Optokoppler schalten, dann geht's.
Passt doch, denn ich schrieb davon, dass es nur mit 1 Transistor nicht geht. Gemeint war (basierend auf der Frage des TO) ein üblicher bipolarer Transistor mit den üblichen 3 Anschlüssen.
Und wenn schon ein OK (hier aka. Halbleiterrelais) verwendet werden soll, dann würde ich die LED mit einem Portpin zur Selbsthaltung ansteuern, damit der uC sich selber abschalten kann:
Mittels eines Tasters soll der Arduino mit Strom versorgt werden und
aufwachen
Was für ein Prozessor ist denn auf den Board. Hat der keinen Deep-Sleep-Modus?
Dann kann er ständig an der Versorgung hängen und per Taster ohne weitere Hardware aufgeweckt werden. Zurück in den Schlaf geschickt werden kann er per Software-Befehl, den die Ampel-Software gibt.
Beim AtMega 328P (der z. B. auf dem Arduino Pro Mini sitzt) geht das jedenfalls. Im Sleep-Modus braucht der weniger als 1 µA, und ein Taster gegen Masse am INT0-Pin genügt, wenn man den internen Pullup nutzt.
Passt doch, denn ich schrieb davon, dass es nur mit 1 Transistor nicht
geht.
Warum sollte es mit einem Transistor nicht gehen? Wenn der Arduino aus ist, sind die GPIOs hochohmig. PNP in die Zuleitung, ausreichend niederohmiger Widerstand zwischen Basis und Emitter um ungewolltes Einschalten zu verhindern und ein Basiswiderstand der über den Taster oder einen GPIO auf GND gezogen werden funktioniert super - zumindest wenn man den Taster so lange gedrückt hält bis der GPIO auf Ausgang und LOW gesetzt wurde.
Wenn der Arduino aus ist, sind die GPIOs hochohmig.
Das ist nur die halbe Wahrheit. Natürlich sperren die Ausgangsfets. Allerdings bleiben die Schutzdioden vom GPIO zu VCC und GND, die leitend werden können ...
Die Variante mit einem einfachen Schalter oder rastenden Taster ist wohl
zu "old school"?
Kinder im Plärrmobil-Alter tendieren dazu sowas zu vergessen.
Auf den Knopf drücken können sie, und wenn das Ding ein paar Minuten nicht mehr bespielt wird geht es aus.
Spart Batterien, kann jeder mit umgehen.
ein Basiswiderstand der über den Taster
oder einen GPIO auf GND gezogen werden funktioniert super
Ähm, nö.
Im Auszustand wird die Basis des PNP über die ESD-Dioden im Port gegen Masse gezogen = das Gerät ist immer an.
Zusätzlicher Trick ist evtl. noch: der Taster soll evtl. nicht nur "An" sein, sondern auch noch eine andere Funktion haben.
Oder: Mehrere Taster sollen das können.
Dazu nutzt man dann normalerweise die Pinchange-Interrupts, und evtl. bastelt man den Chip direkt an 2 Mignonzellen o.ä.
Geht dann mit minimalem Ruhestrom und maximaler Funktion.
Mit einem Arduinoboard ist das aber gebastel und nicht mehr Plug and Play.
Wenn der Arduino aus ist, sind die GPIOs hochohmig.
Einen Schritt weiter denken und die Schutzdiode im Pintreiber nach Vcc mit in die Überlegungen einbeziehen. Und beachten, dass Vcc bei "abgeschalteter Vcc" eben 0V ist und auch bleiben sollte.
PNP in die Zuleitung, ausreichend niederohmiger Widerstand zwischen
Basis und Emitter um ungewolltes Einschalten zu verhindern und ein
Basiswiderstand der über den Taster oder einen GPIO auf GND gezogen
werden funktioniert super
Garantiert nicht. Und wenn du es trotzdem schaffst, den Transistor gewalttätig mit einem niederohmigen BE-Widerstand auszuschalten, dann taugt diese Schaltung tadellos zur parasitären Versorgung des µCs samt Peripherie. Hier fließt der Strom dann über die BE-Strecke samt R1 und den R2 über die obere Diode Do nach Vcc und versorgt ungewollt den µC und die restliche Schaltung:
Die minimale Schaltung würde die Stromversorgung des Mikrocontroller gar nicht aus schalten, sondern dessen Sleep Modus benutzen. An einer CR2032 kann der AVR durchaus einige Jahre in Bereitschaft sein.
Das ist wieder mal ein mittelschwerer Kindergarten hier, die Abschaltung mit zwei Transistoren wird hier alle paar Wochen durchpalawert und kostet wenig.
Ich mache das mit einem P-FET. Geht auch mit einem bipolaren PNP, dazu gab es kürzlich einen Thread, der zeigte, dass sich auch der weit genug aufsteuern lässt!
Die Variante mit einem einfachen Schalter oder rastenden Taster ist wohl
zu "old school"?
Kinder im Plärrmobil-Alter tendieren dazu sowas zu vergessen.
Ich habe sowas gebaut, weil sich mein Spannungslogger definiert trennen soll, bevor er wegen Unterspannung Dummfug protokolliert oder seine SD-Karte zerschießt.
An einer CR2032 kann der AVR durchaus einige Jahre in Bereitschaft sein.
Aber eben nicht "der Arduino Nano" mit seiner kompletten und aus 9V
versorgten Beschaltung und zusätzlich den LEDs der Playmobil-Ampel...
Genau das! Ich möchte aber anmerken, dass der Nano hier nicht optimal ist und der Pro-Mini ohne USB die bessere Wahl wäre. Moderne LEDs kommen mit wenig Strom aus, da wird der CH340 zum Hauptverbraucher.
Was dem TO auch noch in die Suppe spucken kann, ist der Bootloader auf dem Controller, das der Portwackeln veranstaltet, ehe sein Programm loslegt.
Und doppelt genutzte Pins, wie alles, was an JTAG geht, kann da auch suboptimal sein.
Da das Thema Stromverbrauch beim Arduino Nano mehrmals angesprochen worden ist.
Der Nano hat den CH340 und einen Linearregler dran, und noch eine LED, die ständig an ist.
Lötet man die LED ab, bleibt man im Tiefschlaf des 328p immernoch bei etwa 2mA Stromverbrauch, vgl. die 100nA des 328p.
Ein Nano, oder allgemein diese Bastler-/Eval-Boards, sind für solche Aufbauten nicht geeignet. Der Pro Mini ist da besser, aber immer noch meh.
Wenn Platinenkenntnisse nicht vorhanden sind, würde ich auf einen 328p im DIP-Format setzen und diesen auf einen Lochrasterplatinen-Ausschnitt packen.
Da kann er dann im Tiefschlaf dauerhaft bleiben. Man spart sich die "komplexere" Schaltung.
Solche Minimalaufbauten und wie man sie programmiert sind online gut beschrieben und bebildert.