Saya sedang menyelesaikan proyek - jam alarm game LED. Melihat ini adalah jam, saya perlu memiliki cara untuk menghemat daya, yang saat ini Uno R3 + saya memakan seperti politisi. Pertanyaan saya adalah, bagaimana cara mematikan layar, atau mematikan lampu belakang hanya menggunakan perangkat lunak pada layar LCD HD44780 Hitachi HD44780 16x2? Atau bagaimana cara mengatur mode tidur pada satu komponen? Cara saya berencana mematikannya adalah dengan range finder ultrasonik, jika saya mendekat maka layarnya akan menyala. Jika sesuatu yang saya katakan tidak masuk akal, minta saya mengklarifikasi, saya agak terburu-buru.
arduino-uno
lcd
Tuan Floppy
sumber
sumber
Jawaban:
Tempatkan transistor secara seri dengan resistor 33R antara pin LCD 16 (lampu latar) dan GND dan aktifkan dan matikan transistor dengan pin digital. Dengan begitu Anda akan dapat menyalakan dan mematikan lampu latar.
Anda dapat memiliki kontrol yang lebih baik atas kecerahan jika Anda meletakkan pulsa PWM pada pin tersebut. Panggil saja di
analogWrite(D3, value)
manavalue
kecerahan yang diinginkan.Skemanya di bawah. Ini dari Freetronics 16x2 LCD SHield .
sumber
Alih-alih mengikat lampu latar langsung ke V + dan GND, sambungkan ke pin PWM (Anda mungkin perlu menggunakan driver terpisah jika pin tidak dapat sumber / cukup tenggelam saat ini). Ini akan memungkinkan Anda untuk mengontrol kecerahan melalui
analogWrite()
.Matikan layar LCD (
LiquidCrystal::noDisplay()
) saat tidak aktif digunakan. Konten akan tetap ada dalam memori tetapi segmen LCD tidak akan digerakkan.Atur berbagai bit dalam
PRR
register untuk menonaktifkan periferal apa pun yang tidak digunakannya.Dan jangan lupa untuk tidur CPU ketika itu tidak perlu dijalankan . Lihat bagian "Manajemen Daya dan Mode Tidur" pada lembar data untuk informasi lebih lanjut tentang ini dan
PRR
register, serta<avr/sleep.h>
dokumentasi untuk AVR Libc.sumber