ich mach mir gerade Gedanken wie ich einen Arduino dazu bringen kann dass er mittels eines Tasters ein- und wieder ausgeschaltet werden kann.
Also so,dass ich von einer externen Stromquelle (Batterie) dem Arduino mittels eines Tasters Saft gebe und wenn der selbe Taster wieder gedrückt wird schaltet sich die Stromversorgung wieder ab.
Hat jemand schon sowas gemacht?
Da ich über einen I/O ja nur 40mA schalten darf/kann/soll brauche ich wohl noch ein Relais oder einen Tyristor... oder...?
Interessant wäre natürlich auch ein Ausschalten über die Software. zBsp für eine automatische Abschaltung wenn eine Weile nichts passiert ist um die Batterien zu schonen.
viele Grüsse
Flex
PS: das auf dem Bild wird so wohl nicht direkt funktionieren. Aber ev. hilfts für's allgemeine Verständnis
Dein Vorhaben ist zwar klar, was hat das aber mit den 40mA I/O des Arduino zu tun.
Schließlich willst du den doch ein und ausschalten, da wird der schwerlich was auf den Pins ausgeben können.
Der Arduino soll sich ja quasi selber mit 5v ab der Batterie versorgen. zBsp. via Pin13. Allerdings fliessen dann über diese Leitung maximal:
14x 40mA
6x 50ma
plus das was der Arduino selber säuft.
Also mehr als 0,86A
Ein Problem wird sein, dass der Arduino wohl einige Zeit braucht um zBsp. am Pin12 festzustellen, dass da via dem Ein-/AusTaster 5V anliegen und
er über Pin13 und zBsp. einem Thyristor sich selber speisen soll.
ich tippe mal auf einen denkfehler.
ein arduino, der abgeschaltet ist, merkt garnix. auch nicht, ob irgendwo 5V anliegen. über ein bistabiles relais wäre es sicher machbar, daß der arduino sich selbst ausschaltet, aber wieder einschalten ist dann natürlich nur manuell möglich.
ich glaube, jetzt versteh' ich ungefähr, was Du meinst. das problem dabei ist, daß der arduino einige sekunden zum booten braucht. selbst wenn Du das mit der schaltung hinbekommst, müßtest Du den taster solange halten, bis der arduino soweit ist, pin13 zu kontrollieren.
wenn Du es mit taster und bistabilem relais schaltest, dieses relais auch noch an den arduino hängst und es so machst, daß beim tasterdrücken kein böser strom in den pin des arduino hineinfließt, hättest Du vielleicht immer noch das problem, daß Du nicht weißt, was die pins machen, während er bootet. unter umständen gibt er da kurz mal HIGH und schaltet sich dadurch gleich selbst wieder aus...
Ich finde Relais passen nicht so recht zu einer Schaltung, die eigentlich Strom sparen soll - mit einem Längstransitor, einem Elko und zwei Dioden ist das machbar. Von der Logik her ist das ja eine ODER-Schaltung: der Controller soll eingeschaltet werden, wenn jemand die Taste drückt ODER der Arduino selber ein Signal ausgibt. Mit einem Transistor und zwei Dioden lässt sich prima eine ODER-Schaltung aufbauen. Den Elko braucht man als Zeitverzögerung, damit der Arduino nach einem Tastendruck über die Bootphase kommt ...
Du kannst das über Standby machen und dann per Interrupt wieder zu Aufwecken.
Schau mal hier ich glaube das du damit nicht glücklich wirst solange du alles auf dem Uno o.ä. drauf lässt das die sonstige Hardware auch gut was "verbraucht".
der controller ist ja der arduino, er kann sich nicht selbst einschalten.
Ne, aber mann kann einen schaltenden Transistor per Taster öffnen und mit dem Elko dafür sorgen, dass das so lange so bleibt, bis der Arduino den Transistor selber offen halten kann. Deshalb sprach ich ja auch von ODER: Taster oder Arduino-Pin. Was ist daran unverständlich?
Man könnte mit einem NPN Transistor den Batteriestromkreis für den Arduino ein- und auschalten.
Hat der Arduino ein HIGH Signal auf der Basis schaltet der Transistor durch ansonsten sperrt er.
Gleichzeitig ist ein Elko mit entsprechender Kapazität an die Basis des Transistors angeschlossen.
Zwischen der Basis und dem Elko befindet sich der gewünschte Taster.
Wenn der Taster betätigt wird entlädt sich der Elko und schliesst dadurch den Batteriestromkreis.
Das Problem ist nur das der Taster solange gedrückt bleiben muss bis der Arduino hochgefahren ist und selber ein konstantes HIGH auf die Basis geben kann !
Nicht zu vergessen das der Elko während der Arduino aktiv ist geladen werden muss !
Ich hab mal einen Versuch mit einem BC546 (NPN) gemacht.
Der Arduino läuft solange ich den Taster drücke. Aber sobald ich den Taster loslasse ist fertig mit lustig...
Wo mache ich den Überlegungsfehler? (Siehe Bild)
Auf dem Arduino läuft folgendes: (Die LED an Pin13 blickt, damit sehe dass der Arduino läuft)
void setup() {
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(12, HIGH); // set the Arduino ON
}
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(100); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(100); // wait for a second
}
Oh ja, den Taster hatte ich falsch eingezeichnet. Hatte ich eigentlich in Wirklichkeit so.
An D12 kommt +4,8V raus.
Da braucht's doch dann keinen 'Spannungsvernichter' mehr...
Ändern tut's an der Funktion (resp. der Nichtfunktion ) jedenfalls nichts.
Müsste ich da nicht eher eine Diode reintun um den D12 vor den 9V zu schützten...?
Diode: ja.
Ausserdem , mit dem Arduino zwischen Emitter und GND kann es nicht gehen. Die Spannung an der Basis muss schon höher als am Emitter sein, damit du den Transistor eingeschaltet kriegst.
Was du suchst, ist sowas wie ein Wired-OR , nicht invertierend.
( Tip : kostet dich einen kleinen npn und einen etwas stärkeren PNP Transistor, der den Arduino selbst schaltet, die Diode, und die Basis-Widerstände )