Setiap amatir radio, setelah beberapa pekerjaan DIY sederhana, sampai pada tujuan membangun sesuatu yang hebat menggunakan sensor dan tombol. Lagi pula, jauh lebih menarik untuk menampilkan data di layar daripada di monitor port. Tapi kemudian muncul pertanyaan: tampilan mana yang harus dipilih? Dan secara umum, bagaimana menghubungkannya, apa yang dibutuhkan untuk menghubungkan? Jawaban atas pertanyaan-pertanyaan tersebut akan dibahas dalam artikel ini.
LCD 1602
Di antara banyak opsi di antara tampilan, saya ingin memilih tampilan LCD1602 berdasarkan pengontrol HD4478. Ada tampilan ini dalam dua warna: huruf putih dengan latar belakang biru, huruf hitam dengan latar belakang kuning. Menghubungkan LCD 1602 ke Arduino juga tidak akan menimbulkan masalah, karena ada perpustakaan internal, dan Anda tidak perlu mengunduh tambahan apa pun. Tampilan berbeda tidak hanya dalam harga, tetapi juga dalam ukuran. Seringkali amatir radio menggunakan 16x 2, yaitu 2 baris 16 karakter. Tapi ada juga 20 x 4, dimana ada 4 baris 20 karakter. Dimensi dan warna tidak berperan dalam menghubungkan layar lcd 1602 ke Arduino, mereka terhubung dengan cara yang sama. Sudut pandang adalah 35 derajat, waktu respons tampilan adalah 250 ms. Dapat bekerja pada suhu dari -20 hingga 70 derajat Celcius. Saat bekerja, ia menggunakan 4 mA untuk layar dan 120 mA untuk lampu latar.
Di mana digunakan?
Tampilan ini memiliki popularitas tidak hanya di kalangan amatir radio, tetapi juga di antara produsen besar. Misalnya, printer, mesin kopi juga menggunakan LCD1602. Ini karena harganya yang murah, tampilan ini berharga 200-300 rubel di situs Cina. Layak dibeli di sana, karena di toko kami margin untuk tampilan ini sangat tinggi.
Hubungkan ke Arduino
Menghubungkan LCD 1602 ke Arduino Nano dan Uno tidak berbeda. Anda dapat bekerja dengan tampilan dalam dua mode: 4 bit dan 8. Saat bekerja dengan tampilan 8-bit, bit yang lebih rendah dan lebih tinggi digunakan, dan dengan yang 4-bit, hanya yang lebih rendah. Tidak ada gunanya bekerja dengan 8-bit, karena 4 kontak lagi akan ditambahkan untuk terhubung, yang tidak disarankan, karena kecepatannya tidak akan lebih tinggi, batas pembaruan tampilan adalah 10 kali per detik. Secara umum, banyak kabel yang digunakan untuk menghubungkan lcd 1602 ke Arduino, yang menyebabkan beberapa ketidaknyamanan, tetapi ada pelindung khusus, tetapi lebih lanjut tentang itu nanti. Foto menunjukkan koneksi layar ke Arduino Uno:
Contoh kode:
sertakan //Tambahkan perpustakaan yang diperlukan LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) batalkan setup(){ lcd.begin(16, 2); // Setel dimensi layar lcd.setCursor(0, 0); // Atur kursor ke awal baris 1 lcd.print("Halo, dunia!"); // Menampilkan teks lcd.setCursor(0, 1); // Atur kursor ke awal baris 2 lcd.print("fb.ru"); // Output teks } void loop(){ }
Apa yang dilakukan kode tersebut? Pertama-tama, perpustakaan untuk bekerja dengan tampilan terhubung. Seperti disebutkan di atas, perpustakaan ini sudah termasuk dalam Arduino IDE dan Anda tidak perlu mengunduh dan menginstalnya lagi. Selanjutnya, kontak yang terhubung ke pin ditentukan: RS, E, DB4, DB5, DB6, DB7, masing-masing. Kemudian ukuran layar diatur. Karena kami bekerja dengan versi dengan 16 karakter dan 2 baris, kami menulis nilai tersebut. Kami mengatur kursor ke awal baris pertama dan menampilkan teks pertama kami Hello World. Selanjutnya, letakkan kursor di baris kedua dan tampilkan nama situs. Itu saja! Menghubungkan lcd 1602 ke Arduino Uno dipertimbangkan.
Apa itu I2C dan mengapa dibutuhkan?
Seperti disebutkan di atas, menghubungkan layar membutuhkan banyak pin. Misalnya, saat bekerja dengan banyak sensor dan layar LCD 1602 kontak mungkin tidak cukup. Seringkali, amatir radio menggunakan versi Uno atau Nano, di mana tidak banyak kontak. Kemudian orang-orang datang dengan perisai khusus. Misalnya, I2C. Ini memungkinkan Anda untuk menghubungkan layar hanya dengan 4 pin. Ini dua kali lebih sedikit. Modul I2C dijual terpisah, di mana Anda perlu menyoldernya sendiri, dan sudah disolder keLayar LCD 1602.
Koneksi dengan modul I2C
Menghubungkan LCD 1602 ke Arduino Nano dengan I2C membutuhkan sedikit ruang, hanya 4 pin: ground, power dan 2 output data. Kami menghubungkan daya dan ground ke 5V dan GND di Arduino, masing-masing. Dua kontak yang tersisa: SCL dan SDA terhubung ke pin analog apa pun. Di foto Anda dapat melihat contoh menghubungkan lcd 1602 ke arduino dengan modul I2C:
Kode program
Jika hanya perlu menggunakan satu perpustakaan untuk bekerja dengan tampilan tanpa modul, maka dua perpustakaan diperlukan untuk bekerja dengan modul. Salah satunya sudah ada di Arduino IDE - Wire. Pustaka lain, LiquidCrystal I2C, perlu diunduh dan diinstal secara terpisah. Untuk menginstal perpustakaan di Arduino, isi arsip yang diunduh harus diunggah ke folder root Perpustakaan. Contoh kode menggunakan I2C:
include include LiquidCrystal_I2C lcd (0x27, 16, 2); // Mengatur tampilan void setup() { lcd.init(); lcd.backlight();// Nyalakan lampu latar layar lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Atur kursor ke baris kedua dan karakter null. lcd.setCursor(0, 1); // Cetak jumlah detik sejak arduino memulai lcd.print(millis()/1000); }
Seperti yang Anda lihat, kodenya hampir sama.
Bagaimana cara menambahkan simbol saya sendiri?
Masalah dengan tampilan ini adalah tidak adadukungan untuk Cyrillic dan simbol. Misalnya, Anda perlu memuat beberapa karakter ke dalam tampilan sehingga dapat mencerminkannya. Untuk melakukan ini, layar memungkinkan Anda membuat hingga 7 karakter Anda. Presentasikan tabelnya:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
Jika 0 - tidak ada apa-apa di sana, jika 1 - itu adalah area yang diarsir. Pada contoh di atas, Anda dapat melihat pembuatan karakter "tersenyum tersenyum". Menggunakan contoh program di Arduino, akan terlihat seperti ini:
include include // Sertakan library yang diperlukan // Simbol senyum bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) batalkan setup(){ lcd.begin(16, 2); // Atur dimensi layar lcd.createChar(1, smile); // Buat karakter nomor 1 lcd.setCursor(0, 0); // Atur kursor ke awal baris 1 lcd.print("\1"); // Menampilkan smiley (karakter nomor 1) - "\1" } void loop(){ }
Seperti yang Anda lihat, telah dibuatbitmask sama dengan tabel. Setelah dibuat, itu dapat menjadi output sebagai variabel ke tampilan. Ingatlah bahwa hanya 7 karakter yang dapat disimpan dalam memori. Pada prinsipnya, ini sudah cukup. Misalnya, jika Anda ingin menunjukkan simbol derajat.
Masalah di mana tampilan mungkin tidak berfungsi
Ada kalanya tampilan tidak berfungsi. Misalnya, itu menyala, tetapi tidak menunjukkan karakter. Atau tidak menyala sama sekali. Pertama, lihat apakah Anda menghubungkan kontak dengan benar. Jika Anda biasa menghubungkan lcd 1202 ke Arduino tanpa I2C, maka kabel sangat mudah terjerat, yang dapat menyebabkan tampilan tidak berfungsi dengan benar. Anda juga harus memastikan bahwa kontras tampilan ditingkatkan, karena kontras minimum bahkan tidak terlihat apakah LCD 1602 menyala atau tidak. Jika ini tidak membantu, maka mungkin masalahnya terletak pada penyolderan kontak, ini adalah saat menggunakan modul I2C. Juga, alasan umum mengapa tampilan mungkin tidak berfungsi adalah pengaturan alamat I2C yang salah. Faktanya adalah ada banyak produsen, dan mereka dapat mengatur alamat yang berbeda, Anda perlu memperbaikinya di sini:
LiquidCrystal_I2C lcd (0x27, 16, 2);
Dalam tanda kurung Anda dapat melihat dua nilai, 0x27 dan 16, 2 (16, 2 adalah ukuran tampilan, dan 0x27 hanyalah alamat I2C). Alih-alih nilai-nilai ini, Anda dapat mencoba menempatkan 0x37 atau 0x3F. Nah, alasan lain hanyalah LCD 1602 yang rusak. Mengingat hampir semua untuk Arduino dibuat di China, Anda tidak dapat 100% yakin bahwa yang dibeliproduk tidak cacat.
LCD 1602 pro dan kontra
Mari kita lihat kelebihan dan kekurangan LCD 1602.
Pro
- Harga. Modul ini dapat dibeli dengan harga yang sangat terjangkau di toko-toko Cina. Harganya 200-300 rubel. Terkadang bahkan dijual dengan modul I2C.
- Mudah terhubung. Mungkin tidak ada yang menghubungkan LCD 1602 tanpa I2C hari ini. Dan dengan modul ini, koneksi hanya membutuhkan 4 pin, tidak akan ada "jaring" kabel.
- Pemrograman. Berkat perpustakaan yang sudah jadi, bekerja dengan modul ini menjadi mudah, semua fungsi sudah terdaftar. Dan jika Anda perlu menambahkan karakter Anda, hanya perlu beberapa menit.
Kontra
Selama penggunaan oleh ribuan amatir radio, tidak ada kekurangan besar yang telah diidentifikasi, hanya ada kasus membeli pernikahan, karena opsi tampilan Cina terutama digunakan
Artikel ini membahas cara menghubungkan layar LCD 1602 ke Arduino, dan juga menyajikan contoh program untuk bekerja dengan layar ini. Ini benar-benar salah satu yang terbaik di kategorinya, bukan hanya ribuan amatir radio yang memilihnya untuk proyek mereka!