Ich denke, ich were versuchen, den Arduino in nen Energiesparmodus zu versetzen, wenn er grad enichts am Display anzeigen oder den Motor beweren soll. Bei Sonnenstrahlung hab ich nen ladestrom des Akkus von cs. 650mAh spät nachmittags gemessen. Aber wenns zur selben Zeit eher düster war auch mal nur 20mAh. Das sind aber keine repräsentativen Werte, weils gegen 17h doch schon nicht mehr so hell ist.
Prinzipiell sollte das mit den 47mAh problemlos funktionieren, aber ich möchte ja für den Fall 'wenn nicht' eine Lösung finden
Bei den verschiedenen Energiesparmodi ist mir jedoch wichtig, dass der Timre weiterläuft, denn darauf basiert alles.
Auch müssen die Tasten, welche alle an einem Analogpin hängen, ansprechbar bleiben. Gerne auch mit 1-2 Sekunden Verzügerung, wenn das beim Stromsparen hilft. Tastendruck = Display geht an. Danach haben die Tasten Einstellfunktionen.
Ich hab mir vorhin auf mikrocontroller.net was allgemeines zu den verschiedenen µC-Modi durchgelesen. Bin aber grade schon über 20h auf den Beinen und nicht mehr aufnahmefähig. Wenn ich ne Runde geschlafen hab, versuch ich das mal in Zusammenhang mit meinem Arduino zu bringen
Wenn ich den benötigten Strom ohne DC-Motor noch stark reduzieren kann, besteht ja evtl. ne Hoffnung, dass dieser Fall nie eintreten wird.
Ich hab grade mal einen neuen Arduino Uno R3 (µC noch nicht mit Bootloader...da frisch getauscht) ans Labornetzteil geklemmt und da wurde mir n Stromverbrauch von 0,04A angezeigt. Also mit den 47mA in der Schaltung bin ich inklusive Display gar nicht so verschwenderisch.
Das Display könnte ich aber dennoch abschalten.
Initiiert wird das HD44780 per
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
und im setup() mit:
lcd.begin(16, 2);
Gibt es ein lcd.end() oder sowas, um das Display gezielt abzuschalten?
Oder setz ich infach alle Pins auf Output low?
Bzw. Input low? (ich hab gelesen, dass das bei einigen µCs weniger Strom verbrauchen soll - ich weiß jetzt nur nicht, ob das auf den AtMega 328-PU zutrifft...)
Und nach dem 'Aufwachen' einfach wieder ein lcd.begin()?
//Edit: Okay, das Display kann man mit lcd.noDisplay(); ausschalten und mit lcd.display(); wieder einschalten, Quelle: http://arduino.cc/en/Tutorial/LiquidCrystalDisplay
//Edit 2: ich benötige auf jeden Fall die Funktion millis(), die darf im Energiesparmodus nich angehalten werden. Aber so wie es nach meinem derzeitigen kenntnisstand aussieht, wird sie das.
Lesezeichen