Ich beende ein Projekt - einen LED-Spielwecker. Da dies eine Uhr ist, muss ich einen Weg finden, um Energie zu sparen, was mein Uno R3 + gerade wie ein Politiker auffrisst. Meine Frage ist, wie kann ich den Bildschirm ausschalten oder die Hintergrundbeleuchtung mithilfe von Software nur auf einem Hitachi HD44780 16x2 LCD-Bildschirm ausschalten? Oder wie stelle ich einen Schlafmodus für eine Komponente ein? Ich habe vor, es auszuschalten, mit einem Ultraschall-Entfernungsmesser. Wenn ich näher komme, wird es auf dem Bildschirm eingeschaltet. Wenn etwas, das ich sage, keinen Sinn ergibt, bitten Sie mich um Klarstellung, ich bin in Eile.
arduino-uno
lcd
Mr. Floppy
quelle
quelle
Antworten:
Platzieren Sie einen Transistor in Reihe mit einem 33R-Widerstand zwischen dem LCD-Pin 16 (Hintergrundbeleuchtung) und GND und schalten Sie den Transistor mit einem digitalen Pin ein und aus. Auf diese Weise können Sie die Hintergrundbeleuchtung ein- und ausschalten.
Sie können die Helligkeit feiner steuern, wenn Sie einen PWM-Impuls an diesen Pin anlegen. Rufen Sie einfach an,
analogWrite(D3, value)
wovalue
die gewünschte Helligkeit ist.Das Schema ist unten. Es ist von Freetronics 16x2 LCD SHield .
quelle
Anstatt die Hintergrundbeleuchtung direkt an V + und GND zu binden, schließen Sie sie an einen PWM-Pin an (möglicherweise müssen Sie einen separaten Treiber verwenden, wenn der Pin nicht genügend Strom liefern / senken kann). Auf diese Weise können Sie die Helligkeit über steuern
analogWrite()
.Schalten Sie das LCD-Display aus (
LiquidCrystal::noDisplay()
), wenn Sie es nicht aktiv verwenden. Der Inhalt bleibt im Speicher, aber die LCD-Segmente werden nicht angesteuert.Setzen Sie die verschiedenen Bits im
PRR
Register, um alle nicht verwendeten Peripheriegeräte zu deaktivieren.Und vergessen Sie nicht, die CPU in den Ruhezustand zu versetzen, wenn sie nicht ausgeführt werden muss . Weitere Informationen hierzu und zum
PRR
Register sowie die<avr/sleep.h>
Dokumentation zu AVR Libc finden Sie im Abschnitt " Energieverwaltung und Schlafmodus" des Datenblattes .quelle