Mengubah kecerahan pada layar LCD Hitachi HD44780

11

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.

Tuan Floppy
sumber
Apakah ini dapat dilakukan sepenuhnya tergantung pada bagaimana Anda menghubungkan layar LCD. Set perintah HD44780 tidak memiliki ketentuan untuk kontrol lampu latar. Anda perlu menambahkan beberapa mekanisme eksternal Anda sendiri untuk mengendalikan cahaya latar.
Connor Wolf

Jawaban:

8

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)mana valuekecerahan yang diinginkan.

Skemanya di bawah. Ini dari Freetronics 16x2 LCD SHield .

Kontrol Kecerahan LCD

Ricardo
sumber
+1 untuk skema, meskipun saya tidak yakin mengapa ada dua resistor (R7 & R8).
Madivad
1
@Madvad - Saya kira itu untuk meningkatkan daya hambur maksimum yang dapat diambil oleh resistor. Kedua resistor 68R secara paralel menghasilkan resistensi 34R yang setara tetapi menggandakan daya maksimum yang dapat dihamburkan melalui resistor tunggal. Saya tidak ingat resistor apa yang direkomendasikan oleh Freetronics, tetapi dalam kasus saya, saya telah menggunakan dua resistor 1 / 4W 68R dan board berfungsi dengan baik. Juga, saya kira resistor 68R lebih umum. Itu tentu berlaku bagi saya karena saya memiliki banyak resistor 68R di tempat sampah saya dan tidak ada yang 33R.
Ricardo
Saya tahu ini "lama", tetapi harap seseorang akan melihat ini ... Saya mengalami kesulitan memahami bagaimana transistor terhubung (karena saya tidak terbiasa dengan ikon di atas untuk transistor), di mana E, B, C terhubung ke?
warath-coder
@wara - Itu Transistor Efek Lapangan (FET), bukan BJT. Jadi, Anda akan mencari untuk menghubungkan saluran pembuangan, sumber dan gerbang. Bagaimanapun, Anda akan mendapatkan bantuan yang lebih baik dengan mengajukan pertanyaan terpisah, yang menghubungkan ke pertanyaan ini.
Ricardo
5

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 PRRregister 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 PRRregister, serta <avr/sleep.h>dokumentasi untuk AVR Libc.

Ignacio Vazquez-Abrams
sumber
3
Tidur MCU tidak ada gunanya, karena bagian-bagian lain pada uno biasa mengkonsumsi begitu banyak daya sehingga tidak memberikan pengurangan yang berarti dalam konsumsi keseluruhan ..
Connor Wolf
2
Sungguh, jika Anda ingin benar-benar mendapatkan arduino menjadi berdaya rendah, Anda memerlukan arduino pro (atau papan lain tanpa usb-serial onboard), dan kemudian Anda harus meletakkan regulator dengan undian diam yang cukup rendah saat ini. di atasnya. Ini agak terlibat.
Connor Wolf
Benar. Seseorang yang ingin menghemat setiap bit terakhir energi akan merancang papan mereka sendiri dan menentukan komponen mereka sesuai.
Ignacio Vazquez-Abrams
Yap, tetapi poin saya adalah bahwa Anda bahkan tidak bisa mendapatkan konservasi daya yang relevan secara berarti pada sebagian besar papan Arduino, karena bahkan vreg mereka memiliki arus diam yang mengerikan (2 ma +, IIRC). Lalu ada FTDI / ATmega16U2, yang tidak bisa Anda matikan, dll ....
Connor Wolf
@ Mr.Floppy: TKI, pilih yang lain. Sesuatu dengan potongan lebih sedikit.
Ignacio Vazquez-Abrams