Energiesparen bei Batteriebetrieb

Ich habe meinem Sohn eine Uhr gebaut, deren Zeitanzeige den BCD Code verwendet. Dazu hängen am Atmega328P ein RTC 1307, ein Temperatursensor DS1621, ein MAX7221 mit 24 blauen LED's und ein StandardLCD Display.
Leider hat sich erst ganz zum Schluß herausgestellt, das das Ding an eine Wand gehängt werden soll. Damit ist Batteriebetrieb Pflicht. Da ich das niemals betrachtet hatte, habe ich auch nie auf Energieverbrauch geachtet. nun läuft das Ding und zieht alle zwei Tage einen Satz Batterien 4xAA leer. ich muss also den Energieverbrauch meiner Schaltung dramatisch reduzieren.
Zuerst einmal werde ich alle Anzeigen in der Nacht und in der Schulzeit ausschalten. Des Weiteren werde ich die Abfragen der Sensoren sehr viel seltener durchführen.
Damit endet meine Weisheit, habt Ihr noch Tipps?

Hallo,
vielleicht kann man über "Geräusche", z.B. Klatschschalter die Beleuchtung für eine gewisse Zeit aktivieren ?

Gruß Gerd

Gute Idee!

EIn PIR-Sensor, der den ATMEGA in einer Basisversion per Interrupt ansteuert, wäre eine Möglichkeit.
Der PIR-Sensor braucht etwa 50µA im Standby und könnte per Interrupt den (schlafenden) ATMEGA ansteuern, der erst sich und dann entsprechend die anderen Bauteile der Schaltung aktiviert.
Stichworte: sleep(), Interrupt, ISR, ATMEGA328 Breadboard

ArduStemmi:
Leider hat sich erst ganz zum Schluß herausgestellt, das das Ding an eine Wand gehängt werden soll. Damit ist Batteriebetrieb Pflicht.

Sich den Batteriebetrieb erst zum Schluss zu überlegen, ist eine ganz schlechte Idee.

Und eigentlich auch nicht notwendig, da heute in Deutschland jedes Zimmer in einer Wohnung üblicherweise mindestens eine Steckdose hat. Netzteilbetrieb ist also auch möglich, dann führt eben ein dünnes Kabel hin zur Uhr.

ArduStemmi:
Da ich das niemals betrachtet hatte, habe ich auch nie auf Energieverbrauch geachtet. nun läuft das Ding und zieht alle zwei Tage einen Satz Batterien 4xAA leer. ich muss also den Energieverbrauch meiner Schaltung dramatisch reduzieren.

Batteriebetriebene Mikrocontrollerschaltungen können nur dann kräftig Strom sparen, wenn praktisch "fast die gesamte Zeit alles aus" ist.

Beispiel:
Ein Batteriesatz leer alle zwei Tage bei "alles an"
entspricht
Ein Batteriesatz leer alle zweihundert Tage wenn "zu 1% alles an, zu 99% alles aus" ist.
entspricht
Ein Batteriesatz leer alle vierhundert Tage wenn "zu 0,5% alles an, zu 99,5% alles aus" ist.

1% von einem Tag mit 86400 Sekunden wäre eine tägliche Einschaltdauer von 864 Sekunden.

Da müßtest Du also alle LEDs und Displays abschalten, den Controller in einen Schlafmodus versetzen, und nur eine Aktivierung bleibt an, z.B. ein Sensor: Einmal in die Hände klatschen, die LEDs springen an. Oder eine Handbewegung vor der Uhr, die LEDs springen an. Oder Knöppche drück, die LEDs springen an.

Dauerhaft Strom ziehen kann so ein Teil nur aus der Steckdose. Und ein "Board" mit Spannungsregler drauf ist für Batteriebetrieb normalerweise völlig ungeeignet, da der Spannungsregler dauernd einige Milliampere zieht und alle Stromsparbemühungen zunichte macht. Entweder man hat ein Board mit ganz speziellem "Low-drop Spannungsregler", das die Spannungsreglerverluste in Grenzen hält, oder man baut für Batteriebetrieb eine eigene Schaltung: 3xAA Batterie plus nackter Atmega328 auf Platine mit direkter Stromversorgung ohne Spannungsregler. Und wie gesagt: Zwischendrin immer alles abschalten und gaaaaanz viel Sleep-Modus!

Also bei dem Spannungsregler muss ich widersprechen; es gibt einige LDO-Spannungsregler die einen Ruhestrom von unter 2µA haben (z.B. MCP1700). Die alten Linearregler brauchen natürlich wesentlich mehr - aber die benutzt man ja eigentlich auch nicht mehr...

edit: es gibt auch noch TPS780XX, TPS781XX, TPS782XX - Ruhestromaufnahme ~ 500 nA, ADP160, ADP161, ADP162 - Ruhestrom 560nA, MCP1702 - 2µA - um nur einige zu nennen.

Leute regt Euch nicht auf, den Spannungsregler hatte ich schon bei Einbau der Batteriebox entfernt.

PIR Sensor klingt interessant. Was ist das?

LEDs und Hintergrundbeleuchtung sind diametral entgegengesetzt zu Stromsparen.
Stromspartriks sind, wie bereits gesagt die LED auszuschalten und die minimale mögliche Helligkeit einzustellen.
Den Controller in den Sleep-Zustand zu versetzten spart beim Arduino wenig da dieser auch noch andere Elektronik auf der Platine hat. Ein Standalone ATmega328 ist da besser.
Auch den MAX7219 mußt Du abschalten.
Grüße Uwe

Schau Dir mal das http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/ und das hier an: Google Code Archive - Long-term storage for Google Code Project Hosting..