Isi kandungan:

LCD 3-Wire HD44780 untuk Kurang Dari 1 Dolar: 5 Langkah
LCD 3-Wire HD44780 untuk Kurang Dari 1 Dolar: 5 Langkah

Video: LCD 3-Wire HD44780 untuk Kurang Dari 1 Dolar: 5 Langkah

Video: LCD 3-Wire HD44780 untuk Kurang Dari 1 Dolar: 5 Langkah
Video: Arduino with I2C LCD and Rotary Encoder 2024, Julai
Anonim
LCD 3-Wire HD44780 untuk Kurang Dari 1 Dolar
LCD 3-Wire HD44780 untuk Kurang Dari 1 Dolar

Dalam pengajaran ini, kita akan belajar bagaimana kita boleh menyambungkan LCD berdasarkan chipset HD44780 ke bas SPI dan memacu dengan hanya 3 wayar dengan harga kurang dari $ 1. Walaupun saya akan memfokuskan pada paparan alfanumerik HD44780 dalam tutorial ini, prinsip yang sama akan berfungsi hampir sama untuk LCD lain yang menggunakan bas data selari 8 bit, dan ia dapat disesuaikan dengan mudah untuk disesuaikan dengan paparan dengan bas data 16 bit. Paparan alfanumerik berasaskan HD44780 (dan serasi) biasanya tersedia dalam konfigurasi 16x2 (2 baris yang terdiri daripada 16 aksara) dan 20x4, tetapi boleh didapati dalam pelbagai bentuk lagi. Paparan yang paling 'rumit' adalah paparan 40x4, paparan seperti ini istimewa kerana ia mempunyai 2 pengawal HD44780, satu untuk dua baris atas dan satu untuk dua baris bawah. Beberapa LCD grafik mempunyai dua pengawal juga. LCD HD44780 hebat, sangat murah, mudah dibaca dan senang digunakan. Tetapi mereka juga mempunyai beberapa kekurangan, paparan ini memakan banyak pin I / O ketika disambungkan ke Arduino. Dalam projek mudah, ini tidak menjadi perhatian, tetapi apabila projek menjadi besar, dengan banyak IO, atau di mana pin tertentu diperlukan untuk perkara seperti bacaan Analog atau PWM, hakikatnya LCD ini memerlukan minimum 6 pin boleh menjadi masalah. Tetapi kita dapat menyelesaikan masalah ini dengan cara yang murah dan menarik.

Langkah 1: Mendapatkan Komponen

Saya menggunakan TaydaElectronics untuk kebanyakan komponen yang saya gunakan dalam projek ini. Anda juga boleh mendapatkan bahagian-bahagian ini di ebay, tetapi untuk kemudahan penggunaan, saya akan menghubungkan anda ke Tayda. Senarai Membeli2 - pakej 74HC595 DIP161 - Header lelaki generik - 2 pin. Ini tidak diperlukan, saya menggunakan ini sebagai cara untuk mematikan lampu latar secara kekal.3 - Kapasitor Seramik - kapasitansi 0.1µF; voltan 50V1 - Kapasitor Elektrolitik - kapasitansi 10µF; voltan 35V1 - Kapasitor Seramik - kapasitansi 220pF; voltan 50V1 - NPN-Transistor - bahagian # PN2222A * 1 - 1k Ω Perintang1 - Potensiometer pemangkas - rintangan maksimum 5kΩ1 - 470 Ω Perintang * Dengan transistor NPN lampu latar akan mati sehingga ia dihidupkan oleh perisian. Sekiranya anda ingin menghidupkan lampu latar secara lalai, gunakan transistor jenis PNP. Walau bagaimanapun, perubahan dalam kod perpustakaan yang disediakan harus dilakukan. Jumlah keseluruhan untuk senarai ini ialah $ 0.744. Header pin juga tidak diperlukan, jadi anda dapat menjimatkan 15 sen di sana dan subtotalnya akan menjadi $ 0,6.

Langkah 2: Ketahui Perkakasan Anda # 1

Ketahui Perkakasan Anda # 1
Ketahui Perkakasan Anda # 1

Berikut adalah pin standard dari LCD HD44780, ia juga sangat serupa dengan beberapa LCD grafik. HD44780 boleh berfungsi dalam dua mod: 1. mod 4-bit, di mana setiap bait yang dihantar ke LCD terdiri daripada 2 bahagian 4-bit. 2. Mod 8-bit, yang akan kami fokuskan. LCD mempunyai 16 pin keseluruhan, 3 pin kawalan dan 8 pin data: RS - Mengawal sama ada kita mahu menghantar arahan atau data ke LCD. Di mana 'tinggi' bermaksud data (watak) dan 'rendah' bermaksud bait arahan. R / W - Pengawal HD44780 membolehkan anda membaca dari RAMnya. Apabila pin ini 'tinggi' kita dapat membaca data dari pin datanya. Apabila 'rendah' kita dapat menulis data ke LCD. Walaupun pilihan untuk membaca dari LCD dapat berguna dalam beberapa kes, kami tidak akan membahasnya dalam tutorial ini, dan kami hanya akan meletakkan pin ini untuk memastikannya selalu dalam mod Tulis. E - E adalah pin 'Aktifkan', pin ini ditukar 'tinggi' kemudian 'rendah' untuk menulis data ke RAMnya dan akhirnya memaparkannya di skrin. DB0-7 - Ini adalah pin data. Dalam mod 4-bit kita hanya menggunakan 4 bit tinggi DB4-DB7, dan dalam mod 8 bit semuanya digunakan. VSS - Ini adalah pin ground. VCC - Ini pin kuasa, LCD melepaskan bekalan kuasa 5V, kita dapat memberi makan dengan mudah dari pin + 5v Arduino. sumber kuasa untuk lampu latar. Beberapa LCD tidak dilengkapi dengan lampu latar, dan hanya mempunyai 14 pin. Dalam kebanyakan kes pin ini juga memerlukan sambungan + 5v. LED- - Ini adalah landasan untuk lampu latar. ** Penting untuk memeriksa lembaran data paparan atau memeriksa PCBnya untuk memeriksa perintang lampu latar, kebanyakan LCD akan membuatnya dibina -dalam hal ini, yang harus anda lakukan hanyalah menggunakan kuasa pada LED + dan ground ke LED-. Tetapi sekiranya LCD anda tidak mempunyai perintang terpasang untuk lampu latar, adalah penting untuk anda menambahkannya, jika tidak, lampu latar akan menghabiskan banyak tenaga dan akhirnya akan habis. Dalam kebanyakan kes, cara LCD ini disambungkan ke Arduino adalah dengan menggunakannya dalam mod 4-bit dan membumikan pin R / W. Dengan cara ini kita menggunakan pin RS, E dan DB4-DB7. Berjalan dalam mod 4-bit mempunyai satu lagi kelemahan kecil kerana memerlukan dua kali lebih lama untuk menulis data ke layar seperti yang diperlukan dalam konfigurasi 8-bit. LCD mempunyai masa 'penyelesaian' 37 mikrodetik, ini bermakna anda harus menunggu 37 mikrodetik sebelum menghantar arahan atau bait data seterusnya ke LCD. Oleh kerana dalam mod 4-bit kita harus mengirim data dua kali untuk setiap bait, jumlah masa yang diperlukan untuk menulis satu bait meningkat hingga 74 mikrodetik. Ini masih cukup pantas, tetapi saya mahu reka bentuk saya menghasilkan hasil yang terbaik. Penyelesaian masalah kita dengan bilangan pin yang digunakan terletak pada penukar Serial ke Parallel…

Langkah 3: Ketahui Perkakasan Anda # 2

Ketahui Perkakasan Anda # 2
Ketahui Perkakasan Anda # 2

Apa yang akan kami lakukan ialah membina adaptor yang menggunakan jenis komunikasi bersiri yang keluar dari Arduino dan mengubah data menjadi output selari yang dapat dimasukkan ke LCD kami. Terdapat cip 74HC595. Ini adalah daftar shift yang sangat murah dan mudah dikendalikan. Pada dasarnya apa yang dilakukannya adalah dengan mengambil jam dan isyarat data yang digunakannya untuk mengisi buffer 8 bit dalaman dengan 8 bit terakhir yang 'clocked'. Setelah pin 'Latch' (ST_CP) dibawa 'tinggi', ia memindahkan bit ini ke dalam 8 outputnya. 595 mempunyai ciri yang sangat bagus, ia mempunyai pin keluar data bersiri (Q7 '), pin ini dapat digunakan untuk daisy chain 2 atau lebih 595 untuk membentuk adaptor Serial to Parallel yang lebarnya 16 atau lebih bit. Untuk projek ini, kami memerlukan 2 cip ini. Skema ini juga dapat diubahsuai untuk berfungsi dengan satu 595 dalam mod 4-bit, tetapi ini tidak akan diliputi oleh tutorial ini.

Langkah 4: Pendawaian Semuanya

Pendawaian Semuanya
Pendawaian Semuanya

Setelah kita mengetahui bagaimana perkakasan kita berfungsi, kita dapat memasangkan semuanya. Dalam skema kita melihat 2 595 cip daisy dirantai bersama untuk membentuk output selari 16 bit. Cip bawah sebenarnya adalah yang utama, dan yang paling atas adalah daisy yang dirantai padanya. Apa yang kita lihat di sini adalah bahawa 595 bawah menggerakkan pin data LCD dalam konfigurasi 8-bit, cip atas mengawal isyarat RS dan lampu latar dengan menghidupkan atau mematikan transistor. Ingatlah catatan * mengenai lampu latar LCD di Ketahui halaman # perkakasan anda, sekiranya LCD anda tidak mempunyai perintang lampu latar, jangan lupa menambahkannya di litar anda. Dalam kes saya, LCD saya sudah dilengkapi dengan perintang yang terpasang, jadi saya melangkau langkah ini. Kontras diterapkan melalui periuk Ohm 5K, satu pin menuju ke GND yang kedua menuju ke VCC dan pengelap ke pin Vo pada LCD. Kapasitor yang digunakan pada garis LCD dan VCC 595 adalah kapasitor pemisah, mereka berada di sana untuk menghilangkan gangguan. Ini bukan suatu keharusan jika anda mengerjakan papan roti, tetapi harus digunakan sekiranya anda membuat versi litar ini sendiri untuk digunakan di luar "keadaan makmal". R5 dan C9 dalam urutan yang sangat spesifik membuat penundaan RC, yang memastikan bahawa data dalam output 595 mempunyai masa untuk stabil sebelum pin Aktifkan pada LCD ditetapkan 'tinggi' dan membaca data. Q7 'dari bahagian bawah 595 masuk ke input data bersiri dari 595 di bahagian atas, ini membuat rantai daisy 595s dan dengan itu antara muka 16 bit. Pendawaian ke Arduino adalah mudah. Kami menggunakan konfigurasi 3 wayar, menggunakan pin SPI Arduino. Ini memungkinkan pemindahan data yang sangat cepat, menghantar 2 bait ke LCD biasanya memakan masa sekitar 8 mikrodetik. Ini sangat cepat, dan sebenarnya jauh lebih pantas daripada waktu yang diperlukan LCD untuk memproses data, oleh itu penundaan 30 mikrodetik diperlukan antara setiap penulisan. Satu kelebihan besar menggunakan SPI ialah pin D11 dan D13 dikongsi dengan peranti SPI lain. Ini bermaksud bahawa jika anda sudah mempunyai komponen lain yang menggunakan SPI, seperti accelerometer, penyelesaian ini hanya akan menggunakan satu pin tambahan untuk isyarat pengaktifan. Pada halaman seterusnya kita akan melihat hasilnya. Saya telah membina beg galas di papan wangi dan sejauh ini berfungsi dengan baik untuk saya.

Langkah 5: Hasil + Perpustakaan

Hasil + Perpustakaan
Hasil + Perpustakaan
Hasil + Perpustakaan
Hasil + Perpustakaan
Hasil + Perpustakaan
Hasil + Perpustakaan
Hasil + Perpustakaan
Hasil + Perpustakaan

"Satu gambar bernilai seribu perkataan", saya setuju dengan pernyataan ini, jadi berikut adalah beberapa gambar hasil akhir untuk projek ini. Ini adalah gambar produk yang telah siap, paparan Fritzing PCB adalah susun atur papan pahat yang saya gunakan untuk membina beg galas saya. Anda mungkin berguna jika anda ingin membina sendiri. Saya sangat menyukainya sehingga saya merancang PCB menggunakan DipTrace dan memesan 10 PCB. Saya memerlukan 2 atau 3 unit untuk diri saya tetapi akan menyediakan selebihnya dengan harga simbolik semasa saya menerimanya. Oleh itu, sekiranya ada yang berminat sila beritahu saya. * Edit: PCB ada di sini, dan berfungsi. Berikut adalah galeri gambar penuh untuk projek ini, termasuk PCB sebenar. https://imgur.com/a/mUkpw#0 Sudah tentu saya tidak melupakan perkara yang paling penting, perpustakaan untuk menggunakan rangkaian ini. Ia serasi dengan perpustakaan LiquidCrystal yang disertakan dengan Arduino IDE, jadi anda dapat dengan mudah mengganti deklarasi di bahagian atas lakaran anda dan tidak perlu mengubah perkara lain dalam lakaran anda. Terdapat juga lakaran contoh yang menunjukkan bagaimana setiap fungsi di perpustakaan berfungsi, jadi periksa.

Disyorkan: