Kończę projekt - budzik z grami LED. Ponieważ jest to zegar, muszę mieć sposób na oszczędzanie energii, co teraz mój Uno R3 + zjada jak polityk. Moje pytanie brzmi: jak mogę wyłączyć ekran lub wyłączyć podświetlenie za pomocą oprogramowania tylko na ekranie LCD Hitachi HD44780 16x2? Lub jak ustawić tryb uśpienia na jednym elemencie? Planuję go wyłączyć za pomocą ultradźwiękowego dalmierza, jeśli się zbliży, włącza się ekran. Jeśli cokolwiek, co powiem, nie ma sensu, poproś mnie o wyjaśnienie, jestem w pośpiechu.
arduino-uno
lcd
Pan Floppy
źródło
źródło
Odpowiedzi:
Umieść tranzystor szeregowo z rezystorem 33R między pinem LCD 16 (masa podświetlenia) a GND i włączaj i wyłączaj tranzystor za pomocą pinu cyfrowego. W ten sposób będziesz mógł włączać i wyłączać podświetlenie.
Możesz mieć lepszą kontrolę nad jasnością, jeśli na wspomniany pin wyślesz impuls PWM. Wystarczy zadzwonić,
analogWrite(D3, value)
gdzievalue
jest pożądana jasność.Schematy są poniżej. Pochodzi z Freetronics 16x2 LCD SHield .
źródło
Zamiast przywiązywać podświetlenie bezpośrednio do V + i GND, podłącz je do pinu PWM (może być konieczne użycie osobnego sterownika, jeśli pin nie może uzyskać / rozładować wystarczającej ilości prądu). Umożliwi to sterowanie jasnością za pomocą
analogWrite()
.Wyłącz wyświetlacz LCD (
LiquidCrystal::noDisplay()
), gdy nie jest aktywnie używany. Zawartość pozostanie w pamięci, ale segmenty LCD nie będą sterowane.Ustaw różne bity w
PRR
rejestrze, aby wyłączyć nieużywane urządzenia peryferyjne.I nie zapomnij uśpić procesora, gdy nie trzeba go uruchamiać . Zobacz sekcję „Zarządzanie energią i tryby uśpienia” arkusza danych, aby uzyskać więcej informacji na ten temat i
PRR
rejestr, a także<avr/sleep.h>
dokumentację AVR Libc.źródło