Daftar Isi:

LCD 3-Wire HD44780 kurang dari 1 Dolar: 5 Langkah
LCD 3-Wire HD44780 kurang dari 1 Dolar: 5 Langkah

Video: LCD 3-Wire HD44780 kurang dari 1 Dolar: 5 Langkah

Video: LCD 3-Wire HD44780 kurang dari 1 Dolar: 5 Langkah
Video: Arduino with I2C LCD and Rotary Encoder 2024, November
Anonim
LCD 3-Kabel HD44780 dengan Harga Kurang dari 1 Dolar
LCD 3-Kabel HD44780 dengan Harga Kurang dari 1 Dolar

Dalam instruksi ini kita akan belajar bagaimana kita dapat menghubungkan LCD berdasarkan chipset HD44780 ke bus SPI dan mengendarainya hanya dengan 3 kabel dengan harga kurang dari $1. Meskipun saya akan fokus pada tampilan alfanumerik HD44780 dalam tutorial ini, prinsip yang sama akan bekerja hampir sama untuk LCD lain yang menggunakan bus data paralel 8 bit, dan dapat dengan mudah disesuaikan untuk menyesuaikan tampilan dengan bus data 16 bit.. Tampilan alfanumerik berbasis HD44780 (dan kompatibel) biasanya tersedia dalam konfigurasi 16x2 (2 baris terdiri dari 16 karakter) dan 20x4, tetapi dapat ditemukan dalam lebih banyak bentuk. Tampilan yang paling 'rumit' adalah tampilan 40x4, tampilan semacam ini istimewa karena memiliki 2 pengontrol HD44780, satu untuk dua baris atas dan satu untuk dua baris bawah. Beberapa LCD grafis memiliki dua pengontrol juga. LCD HD44780 sangat bagus, sangat murah, mudah dibaca, dan cukup mudah digunakan. Tetapi mereka juga memiliki beberapa kelemahan, tampilan ini memakan banyak pin I/O saat terhubung ke Arduino. Dalam proyek sederhana ini bukan masalah, tetapi ketika proyek menjadi besar, dengan banyak IO, atau di mana pin tertentu diperlukan untuk hal-hal seperti pembacaan Analog atau PWM, fakta bahwa LCD ini memerlukan minimal 6 pin dapat menjadi masalah. Tapi kita bisa memecahkan masalah ini dengan cara yang murah dan menarik.

Langkah 1: Mendapatkan Komponen

Saya menggunakan TaydaElectronics untuk sebagian besar komponen yang saya gunakan dalam proyek ini. Anda juga bisa mendapatkan suku cadang ini di ebay, tetapi untuk kemudahan penggunaan, saya akan menautkan Anda ke Tayda. Shopping List2 - paket 74HC595 DIP161 - Header pria generik - 2 pin. Ini tidak diperlukan, saya menggunakan ini sebagai cara untuk menonaktifkan lampu latar secara permanen.3 - Kapasitor Keramik - kapasitansi 0,1µF; tegangan 50V1 - Kapasitor Elektrolit - kapasitansi 10µF; tegangan 35V1 - Kapasitor Keramik - kapasitansi 220pF; tegangan 50V1 - Transistor NPN - bagian # PN2222A*1 - 1k Resistor1 - Potensiometer Pemangkas - resistansi maksimum 5kΩ1 - 470 Resistor* Dengan transistor NPN lampu latar akan tetap mati hingga dihidupkan oleh perangkat lunak. Jika Anda ingin menyalakan lampu latar secara default, gunakan transistor tipe PNP. Namun, perubahan dalam kode perpustakaan yang disediakan harus dilakukan. Sub total untuk daftar ini adalah $0,744. Header pin juga tidak diperlukan, jadi Anda dapat menghemat 15 sen di sana dan subtotalnya akan menjadi $0,6.

Langkah 2: Kenali Perangkat Keras Anda #1

Kenali Perangkat Keras Anda #1
Kenali Perangkat Keras Anda #1

Berikut adalah pin standar dari LCD HD44780, juga sangat mirip dengan beberapa LCD grafis. HD44780 dapat bekerja dalam dua mode: 1. Mode 4-bit, di mana setiap byte yang dikirim ke LCD terdiri dari 2 bagian 4-bit. 2. Mode 8-bit, yang akan kita fokuskan. LCD memiliki total 16 pin, 3 pin kontrol dan 8 pin data:RS - Mengontrol apakah kita ingin mengirim perintah atau data ke LCD. Di mana 'tinggi' berarti data (karakter) dan 'rendah' berarti byte perintah. R/W - Kontroler HD44780 memungkinkan Anda membaca dari RAM-nya. Saat pin ini 'high' kita bisa membaca data dari pin datanya. Saat 'rendah' kita bisa menulis data ke LCD. Meskipun opsi untuk membaca dari LCD dapat berguna dalam beberapa kasus, kami tidak akan membahasnya dalam tutorial ini, dan kami hanya akan menghubungkan pin ini untuk memastikan bahwa pin ini selalu dalam mode Tulis. E - E adalah pin 'Aktifkan', pin ini diaktifkan 'tinggi' lalu 'rendah' untuk menulis data ke RAM dan akhirnya menampilkannya di layar. DB0-7 - Ini adalah pin data. Dalam mode 4-bit kami hanya menggunakan 4 bit tinggi DB4-DB7, dan dalam mode 8 bit semuanya digunakan. VSS - Ini adalah pin ground. VCC - Ini pin daya, LCD menjalankan catu daya 5V, kita dapat dengan mudah memberi daya dari pin +5v Arduino. Vo - Ini adalah pin yang memungkinkan Anda untuk mengatur tingkat kontras untuk tampilan, memerlukan potensiometer, biasanya digunakan pot 5K Ohm. LED+ - Ini adalah sumber daya untuk lampu latar. Beberapa LCD tidak dilengkapi dengan lampu latar, dan hanya memiliki 14 pin. Dalam kebanyakan kasus, pin ini juga memerlukan koneksi +5v. LED- - Ini adalah dasar untuk lampu latar.** Penting untuk memeriksa lembar data tampilan atau memeriksa PCB-nya untuk memeriksa resistor lampu latar, sebagian besar LCD akan memasangnya -in, dalam hal ini yang harus Anda lakukan adalah menerapkan daya ke LED+ dan ground ke LED-. Tetapi jika LCD Anda tidak memiliki resistor bawaan untuk lampu latar, penting bagi Anda untuk menambahkannya, jika tidak, lampu latar akan menghabiskan banyak daya dan akhirnya akan mati. Dalam kebanyakan kasus, cara kabel LCD ini ke Arduino adalah dengan menggunakannya dalam mode 4-bit dan menghubungkan pin R/W. Dengan cara ini kita menggunakan pin RS, E dan DB4-DB7. Menjalankan dalam mode 4-bit memiliki kelemahan kecil lainnya karena diperlukan waktu dua kali lebih lama untuk menulis data ke layar dibandingkan dengan konfigurasi 8-bit. LCD memiliki 'settling time' 37 mikrodetik, artinya Anda harus menunggu 37 mikrodetik sebelum mengirimkan perintah atau byte data berikutnya ke LCD. Karena dalam mode 4-bit kita harus mengirim data dua kali untuk setiap byte, total waktu yang diperlukan untuk menulis satu byte mencapai 74 mikrodetik. Ini masih cukup cepat, tetapi saya ingin desain saya menghasilkan hasil terbaik. Solusi untuk masalah kita dengan jumlah pin yang digunakan terletak pada konverter Serial ke Paralel…

Langkah 3: Kenali Perangkat Keras Anda #2

Kenali Perangkat Keras Anda #2
Kenali Perangkat Keras Anda #2

Apa yang akan kita lakukan adalah membangun adaptor yang mengambil jenis komunikasi serial yang keluar dari Arduino dan mengubah data menjadi output paralel yang dapat diumpankan ke LCD kita. Di datang chip 74HC595. Ini adalah register geser yang sangat murah dan mudah dioperasikan. Pada dasarnya apa yang dilakukannya adalah mengambil sinyal clock dan data yang digunakannya untuk mengisi buffer 8 bit internal dengan 8 bit terakhir yang 'di-clock'. Setelah pin 'Latch' (ST_CP) telah dibawa 'tinggi', ia memindahkan bit-bit ini ke 8 outputnya. 595 memiliki fitur yang sangat bagus, memiliki pin serial data out (Q7'), pin ini dapat digunakan untuk daisy chain 2 atau lebih 595 bersama-sama untuk membentuk adaptor Serial ke Paralel yang lebarnya 16 bit atau lebih. Untuk proyek ini kita akan membutuhkan 2 chip ini. Skema juga dapat dimodifikasi untuk bekerja dengan 595 tunggal dalam mode 4-bit, tetapi ini tidak akan dibahas dalam tutorial ini.

Langkah 4: Menghubungkan Semuanya

Menghubungkan Semuanya
Menghubungkan Semuanya

Sekarang kita tahu cara kerja perangkat keras kita, kita bisa menghubungkan semuanya. Dalam skema kita melihat 2 595 chip daisy dirantai bersama untuk membentuk output paralel 16 bit. Chip bawah sebenarnya yang utama, dan yang atas dirantai daisy. Apa yang kita lihat di sini adalah bahwa 595 bawah menggerakkan pin data LCD dalam konfigurasi 8-bit, chip atas mengontrol sinyal RS dan lampu latar dengan menyalakan atau mematikan transistor. Ingat *catatan tentang lampu latar LCD pada halaman Kenali perangkat keras #1 Anda, jika LCD Anda tidak memiliki resistor lampu latar, jangan lupa untuk menambahkannya di sirkuit Anda. Dalam kasus saya LCD saya sudah datang dengan resistor built-in, jadi saya melewatkan langkah ini. Kontras diterapkan melalui pot 5K Ohm, satu pin masuk ke GND yang kedua ke VCC dan wiper ke pin Vo pada LCD. Kapasitor yang digunakan pada saluran VCC LCD dan 595 adalah kapasitor decoupling, mereka ada untuk menghilangkan gangguan. Mereka tidak harus jika Anda bekerja di papan tempat memotong roti, tetapi harus digunakan jika Anda membuat versi Anda sendiri dari sirkuit ini untuk digunakan di luar "kondisi lab". R5 dan C9 dalam urutan yang sangat spesifik membuat penundaan RC, yang memastikan bahwa data dalam keluaran 595 memiliki waktu untuk stabil sebelum pin Aktifkan pada LCD disetel 'tinggi' dan membaca data. Q7' dari 595 bawah masuk ke input data serial dari 595 di atas, ini menciptakan rantai daisy 595s dan dengan demikian antarmuka 16 bit. Menghubungkan ke Arduino itu mudah. Kami menggunakan konfigurasi 3-kawat, menggunakan pin SPI Arduino. Ini memungkinkan transfer data yang sangat cepat, mengirim 2 byte ke LCD biasanya membutuhkan waktu sekitar 8 mikrodetik. Ini sangat cepat, dan sebenarnya jauh lebih cepat daripada waktu yang dibutuhkan LCD untuk memproses data, sehingga diperlukan jeda 30 mikrodetik di antara setiap penulisan. Salah satu manfaat yang sangat besar dari menggunakan SPI adalah bahwa pin D11 dan D13 digunakan bersama dengan perangkat SPI lainnya. Artinya, jika Anda sudah memiliki komponen lain yang menggunakan SPI, seperti akselerometer, solusi ini hanya akan menggunakan satu pin tambahan untuk mengaktifkan sinyal. Pada halaman berikutnya kita akan melihat hasilnya. Saya telah membuat ransel di papan perf dan sejauh ini bekerja dengan sangat baik untuk saya.

Langkah 5: Hasil + Pustaka

Hasil + Pustaka
Hasil + Pustaka
Hasil + Pustaka
Hasil + Pustaka
Hasil + Pustaka
Hasil + Pustaka
Hasil + Pustaka
Hasil + Pustaka

"Sebuah gambar bernilai seribu kata", saya setuju dengan pernyataan ini, jadi inilah beberapa gambar dari hasil akhir untuk proyek ini. Ini adalah gambar dari produk yang telah selesai, tampilan PCB Fritzing adalah tata letak perfboard yang saya gunakan untuk membuat ransel saya. Anda mungkin merasa berguna jika Anda ingin membuat sendiri. Saya sangat menyukainya sehingga saya mendesain PCB menggunakan DipTrace dan memesan 10 PCB. Saya akan membutuhkan 2 atau 3 unit untuk diri saya sendiri tetapi akan membuat sisanya tersedia dengan harga simbolis ketika saya menerimanya. Jadi jika ada yang tertarik tolong beri tahu saya. * Sunting: PCB ada di sini, dan berfungsi. Berikut galeri gambar lengkap untuk proyek ini, termasuk PCB yang sebenarnya. https://imgur.com/a/mUkpw#0 Tentu saja saya tidak melupakan hal yang paling penting, perpustakaan untuk menggunakan sirkuit ini. Ini kompatibel dengan perpustakaan LiquidCrystal yang disertakan dengan Arduino IDE, sehingga Anda dapat dengan mudah mengganti deklarasi di bagian atas sketsa Anda dan tidak perlu mengubah apa pun di sketsa Anda. Ada juga contoh sketsa yang menunjukkan bagaimana setiap fungsi di perpustakaan bekerja, jadi periksalah.

Direkomendasikan: