Arduino Ein-/Ausschalten mit einem Taster

Hallo Zusammen,

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.

hi,

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.

gruß stefan

Das ist mir schon klar.

Darum möchte ich ja:

  • Über einen Taster 5v auf die Stromversorgungs-Buchse geben
  • Dann soll der Arduino über zBsp. Pin13 ein Relais oder wohl eleganter einen Thyristor dazu bringen diese 5V weiter auf die Buchse zu geben
  • Wenn der Pin13 nicht mehr High ist fallt das Relais ab und der Arduino hat keinen Saft mehr -> Aus die Maus.

Zusätzlich wäre schön wenn man (ev. mit dem selben Taster) das Tail auch von Hand abschalten kann.

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...

gruß stefan

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 ...

Ich finde Relais passen nicht so recht zu einer Schaltung, die eigentlich Strom sparen soll

deshalb ja das bistabile relais.

der Controller soll eingeschaltet werden, wenn jemand die Taste drückt ODER der Arduino selber ein Signal ausgibt

der controller ist ja der arduino, er kann sich nicht selbst einschalten.

gruß stefan

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".

Ist interessant zum Stromverbrauch der Ardus

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
}

Gruss
Flex

Bei D12 noch einen 1kohm Widerstand hinzufügen !

hmm...
Als Pulldown?

Ich habe mir erlaubt dein Bild zu verändern !

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 :slight_smile: ) 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 )

Hallo zusammen,
hat die Variante von Megaionstorm jetzt funkioniert?

grüße
Beef

Nicht dass 2012 die Elektronik noch nicht so fortschrittlich war, aber: Geh mal davon aus, dass nicht :wink:

Suchst du so eine Selbsthaltungs-Schaltung ?:
8a13387ad9a342f7fc11f0a797cb7198ac194444.jpg

http://forum.arduino.cc/index.php?topic=235605.msg1695440#msg1695440
Und beachte:

guntherb:
Für höhere Ströme empfiehlt es sich, Q1 durch einen P-Kanal Fet zu ersetzen.