Hallochen.
Plane grad an ner neuen Spielerei herum....
Es soll ein Arduino (vermutlich nen ProMini oder so, da recherchier ich noch) folgendes tun:
Bei Druck auf nen Knopf soll er an gehen, gewisse Dinge tun, und sich dann, nach, sagen wir ner Minute (kann etwas mehr oder weniger sein) alleine wieder abschalten.
Komplett aus-nix Sleepmodus oder so, Stromverbrauch NULL ist nötig.
Irgendwo gab es dazu ne nette kleine Platine, weiss aber nicht mehr, wie, wo was und- muss doch auch recht simpel selber zu bauen sein oder?
Hat da jemand ne Idee zu?
Hallo,
das müßte mit einem Taster und und einem Relais möglich sein.
Taster hat zweimal "ein"
Das Relais "1 x um"
Mit dem Taster (Kontakt a 1x ein) versorgst Du den Arduino mit Spannung.
Beim starten des Sketch wird das Relais über eine Pin angezogen.
Das Relais versorgt nun den Arduino mit Spannung.
Mit dem Taster (Kontakt b 1x ein) schaltest Du den Pin des Relais auf Low.
Das Relais fällt ab, der Arduino schaltet sich aus.
Beim starten des Sketch mußt Du den Kontakt b des Schalter über eine
Zeitschleife daran hindern, das er sofort scharf ist.
Könnte funktionieren.
Oder wie jurs schon sagte, Selbsthaltung eines Relais mit zwei Taster.
Gruß und Spaß
Andreas
Das Ding muss sich schon von selber wieder abschalten.
Prinzip: eine Uhr mit stromfressender Ausgabe: nur, wenn ich wissen will, wie spät es ist, drücke ich den Knopf und nach ner Weile (wo der Dino nen paar Dinge erledigt) geht das Ding immer selber wieder aus.
Die Zeitspanne wird flexibel sein, daher muss das Ausschalt-Signal vom Board kommen.
Hintergrund ist der, dass mit nen paar Batterien eine möglichst lange Betriebsdauer erreicht werden muss (etliche Monate, eben so lange wie es nur irgendwie geht, aber möglichst kleine Batterien verwendet werden sollen), und unter anderem ein Display (weiss ich noch nicht, welches, tendiere derzeit zu nem kleinen OLED) als "Stromfresser" dran hängt.
Bedienerfehler ("vergessen, abzuschalten") müssen ausgeschlossen werden, wenn der Benutzer von dem Teil was will, dann drückt er den Knopf und weiter gar nix.
Daher auch kein Relais-zu viel Stromverbrauch (ja, ich weiss, so schlimm isses auch nicht, trotzdem ohne).
Sleep-Modus verbraucht wirklich so wenig daß den Aufwand den Du betreiben willst nicht lohnt.
Die Selbsthalteschaltung hat einen gravierenden Nachteil. Der Taster muß solange gedrückt sein bis der Arduino das Relais ansteuert, was einige Sekunden dauert. Wird der Taster zu schnell losgelassen schaltet sich der Arduino nicht ein.
uwefed:
Sleep-Modus verbraucht wirklich so wenig daß den Aufwand den Du betreiben willst nicht lohnt.
Vielleicht möchte er ein Standard-Board verwenden und keine eigene Schaltung, so dass er mit Sleepmode gar nicht auf 0mA runterkommt?
uwefed:
Die Selbsthalteschaltung hat einen gravierenden Nachteil. Der Taster muß solange gedrückt sein bis der Arduino das Relais ansteuert, was einige Sekunden dauert. Wird der Taster zu schnell losgelassen schaltet sich der Arduino nicht ein.
Das kann er allerdings durch Plattmachen des Bootloaders umgehen: Einfach den Sketch mit einem ISP-Programmer hochladen, Bootloader ist weg, dann startet der Controller in wenigen Millisekunden sein Programm und kann die Selbsthaltung durchschalten.
Hallo,
Selbsthaltung müßte doch auch mit zwei Transistoren möglich sein?
Oder Bistabiles Relais, Taster schaltet Relais mit Minus um, Arduino mit High zurück.
Gruß und Spaß
Andreas
Glaubt mir- der "Aufwand" (so wild ist es ja nun auch wieder nicht) lohnt sich denn: an dem Dinolein soll natürlich noch bisschen was dran hängen. Von daher will ich einfach, dass das Teil komplett abgeschalten wird. Aus Gründen der Einfachheit möchte ich die anderen Geräte (u.a. ein Display) nämlich am liebsten mit über den Dino versorgen.
Ob es nen ProMini wird, ist noch nicht sicher, möglicherweise wird das Spielzeug auch in verschiedenen Varianten aufgebaut- mal sehen, ich bin da grad am rumsuchen.
Die Lösung von dem Transistortester gefällt mir, so stelle ichs mir vor: nach Erledigung seiner Aufgaben gibt der Dino einfach das Abschalt-Signal und es wird finster, bis mal wieder jemand am Button rumfummelt.
Sieht auch aus, als würd ich die Schaltung hinkriegen.
Mal die Tage bisschen mit dem Steckbrettel rumspielen...
die Masse sollte man nicht schalten. Wenn dann die + Seite. Entweder nimmt man einen fertigen High-Side Switch, so ein Mini IC oder in Transistorbauform mit 5 Pins. Oder man baut das mit einem NPN + PNP nach. Mit Mosfets geht das natürlich auch. Der PNP muß satt bzw. ausreichend durchgesteuert sein. Mit NPN+PNP lasse ich vom Arduino mein BT-Modul ein- und ausschalten, weil das sonst zu viel Strom zieht auf Dauer. Bei Dir. Die Basis vom ersten NPN schaltet man mit einem Taster ein und wenn der µC soweit ist, übernimmt er die Funktion. Wenn das Programm fertig ist, schaltet er den Pin einfach ab und damit nimmt er sich selbst den Saft weg.
Edit:
Schaltplan ergänzt. Zwischen Kollektor am PNP und Masse kommt der Arduino mit 5V / GND. Mit Mosfet's spart man den Strom in die NPN Basis, NPN Kollektorstrom und PNP Basisstrom. Bzw. sind die deutlich geringer.
Aber Achtung Doc_Arduino
Bei den meisten ICs und darum auch Modulen sind Schutzdioden zwischen dem Eingengspin und masse und Versorgungsspannung geschaltet. diese werden leitend wenn die Spannung an Pin ca 0,5V höher als die Versorgungsspaannung wird bzw 0,5V niedriger als das Massepotential. Wenn Du jetzt einem IC oder Modul die Versorgungsspannung kappst dann darf an der Eingängen auch keine Spannung mehr sein da ansonsten über die Schutzdiode der Strom zum Versorgungspin des ICs/Koduls fließt und so das IC/Modul versorgt. Der Strom kann die Schutzdiode zerstören.
Du mußt mittels SW sicherstellen, daß die Eingänge keine Spannung mehr bekommen bevor Du dem Modul den Saft abdrehst (indem Du die Ausgangspins al Eingang definierst). Ein hochohmiger > 10kOhm Widerstand zwischen Ausgang Arduino und Eingang Modul kann den strom auch stark begrenzen und meist die Signalübertragung nicht stören.
Danke für den Hinweis. Das BT Modul ist am 2. seriellen Port angeschlossen. TX1/RX1. Und die 5V werden per "High-Side-Switch" am BT-Modul zugeführt oder nicht. Serial 1 muß man ja mit initialisieren lassen. Kann ich nicht einfach ändern. Kann man wirklich in die serielle Leitung 10k Widerstände setzen ohne das diese stören?
Bisher ist das so, dass ich das BT-Modul per Taster am Arduino über den Arduino einschalte und mich dann mit dem Smartphone conecte.
hab nochmal nachgedacht. Bei der Initialisierung der Serial 1 in setup kann ich das BT Modul vorher einschalten. Dann weis ich aber nicht richtig weiter. Die Pins der Serial 1 kann ich noch als Eingänge umschalten und dann das BT Modul ausschalten. Aber wie bekomme ich die Pins von Serial 1 danach wieder als serielle Schnittstelle zum laufen?
setup() beim Arduino etwas irreführend. Es handelt sich lediglich um Code, der nur beim Beginn einmal ausgeführt wird, denn danach geht es mit while(1)/loop() in eine Dauerschleife.
Es wäre auch kein Problem, die Serielle Schnittstelle in der Loop zu defenieren.
Hab es nur in AVR-GCC getestet. Sollte mit SerialN. aber auch gehen. Für den genauen Aufbau der Serial. müsstest du mal die entsprechende cpp bzw h Datei finden.
Habe auf die schnelle nichts gefunden, wo die IOs konfiguriert werden. Alternativ sollte es möglich sein, STATE auszulesen von HC-0x. Dann musste halt angeben, dass du Serial.end am besten erst machst, wenn STATE nicht mehr gesetzt ist. Sprich keiner mehr verbunden ist. Danach kann auf Rx(Arduino) nichts mehr ankommen. Tx(Arduino) kannst du dann mit Serial.end unterbinden.