Daftar Isi:

1602 Modul Perisai Keypad LCD Dengan Ransel I2C: 6 Langkah
1602 Modul Perisai Keypad LCD Dengan Ransel I2C: 6 Langkah

Video: 1602 Modul Perisai Keypad LCD Dengan Ransel I2C: 6 Langkah

Video: 1602 Modul Perisai Keypad LCD Dengan Ransel I2C: 6 Langkah
Video: Using LCD Displays with Arduino 2024, November
Anonim
1602 Modul Perisai Keypad LCD Dengan Ransel I2C
1602 Modul Perisai Keypad LCD Dengan Ransel I2C

Sebagai bagian dari proyek yang lebih besar, saya ingin memiliki layar LCD dan papan tombol untuk navigasi beberapa menu sederhana. Saya akan menggunakan banyak port I/O pada Arduino untuk pekerjaan lain, jadi saya menginginkan antarmuka I2C untuk LCD. Jadi saya membeli beberapa perangkat keras, yang terdiri dari modul pelindung Keypad LCD 1602 dari DFRobot dan modul serial I2C anonim untuk LCD. Saya ingin menggunakan ini dengan Arduino Nano. Kemudian saya menemukan ada beberapa tantangan untuk membuat komponen ini bekerja bersama - tetapi itu mungkin. Jadi saya ingin berbagi pengalaman saya dan mungkin membantu beberapa orang lain.

Foto ini adalah papan tempat memotong roti yang berfungsi, yang dapat menampilkan pesan pada LCD dan mengidentifikasi penekanan tombol. LCD dikontrol melalui antarmuka I2C, termasuk lampu latar LCD. Penekanan tombol diterima oleh Arduino pada pin A0 (dapat berupa pin analog apa pun, kecuali untuk A4 dan A5 yang diikat untuk antarmuka I2C).

Langkah 1: Deskripsi Bagian - Modul Perisai Tombol LCD

Deskripsi Bagian - Modul Pelindung Tombol LCD
Deskripsi Bagian - Modul Pelindung Tombol LCD

Modul pelindung Keypad LCD terdiri dari LCD 1602 yang umum digunakan yang dipasang di atas papan sirkuit yang memegang kunci, dan yang mengambil subset dari koneksi LCD dan membuatnya tersedia untuk pin header di bagian bawah papan sirkuit. Saya mengerti papan ini dimaksudkan untuk dipasang di atas Arduino Uno atau serupa dan menyediakan tata letak pin yang tepat agar dapat bekerja di lingkungan itu. Saya membeli modul ini di Ebay dari vendor di China. Pin header di sisi bawah (keypad) papan sebagian besar diberi label tetapi pin di sisi atas, yang merupakan antarmuka LCD, tidak diberi label. Namun pin pada LCD itu sendiri diberi label.

Langkah 2: Deskripsi Bagian - Modul Serial I2C

Deskripsi Bagian - Modul Serial I2C
Deskripsi Bagian - Modul Serial I2C

Modul serial memiliki header 4-pin biasa untuk I2C, dan satu set pin header tidak berlabel yang saya pahami dimaksudkan untuk dipasang langsung ke bagian bawah modul LCD. Dengan mempelajari label pada LCD, saya dapat mengidentifikasi fungsi pin pada modul serial.

Modul ini didasarkan pada IC PCF8574T yang mengakhiri protokol I2C, memiliki 3 pin untuk kontrol alamat (20 hingga 27) dan memiliki 8 pin input/output digital P0 hingga P7. Menurut lembar data PCF8574T, setiap pin I/O memiliki FET untuk menariknya ke ground untuk status LOW, dan dapat menenggelamkan setidaknya 20ma. Dalam keadaan Tinggi, ia memiliki pull-up aktif sementara dan kemudian arus pull-up berkelanjutan sekitar 0,1 mA.

Pada modul ini, semua pin I/O digital, kecuali P3, hanya dibawa ke pin header (di sebelah kanan dalam foto). Dalam kasus P3, terhubung ke dasar transistor (terlihat pada foto di area kanan atas tepat di bawah label "LED"). Emitor transistor tersebut dihubungkan ke Vss (ground) dan kolektor dihubungkan ke pin header 16, dimana dapat digunakan untuk mengontrol backlight LCD. Karena transistor, keadaan logika dibalik relatif terhadap yang diasumsikan di perpustakaan perangkat lunak. Artinya, lampu latar LCD ON saat pin P3 Low, dan OFF saat pin P3 High.

Label pada transistor mengatakan L6 yang menurut penelitian saya mungkin membuatnya menjadi MMBC1623L6 yang memiliki gain arus minimum 200. Dengan arus basis 0,1 mA, seharusnya dapat mempertahankan kondisi LOW pada kolektornya (modul Pin 16) dengan arus kolektor minimal 20mA.

Selain itu modul ini memiliki potensiometer 10K yang terhubung antara +5 dan Ground, yang kabel variabelnya dibawa ke pin 3 (ketiga dari bawah di foto). Saat terhubung langsung ke LCD, pot ini akan mengontrol kontras LCD. Namun, fungsi tersebut disediakan oleh pot serupa yang terpisah pada pelindung LCD, sehingga pot pada modul serial ini tidak memiliki fungsi.

Saya tidak dapat menemukan koneksi apa pun ke pin INT dari PCF8574T.

PEMBARUAN 22 Agustus 2019

Seperti disebutkan di atas, PCF8574 memiliki 3 pin kontrol alamat. Ini tampaknya dibawa ke bantalan di papan ransel di mana mereka diberi label A0, A1 dan A2. Mereka bisa dilihat di foto. Saya belum menguji ini, tetapi tampaknya hampir pasti bahwa dengan menjembatani satu atau lebih pin ini ke bantalan yang berdekatan, alamat I2C dapat dikontrol pada rentang 20 hingga 27. Selanjutnya, ada perangkat kedua yang hampir identik, yaitu PCF8574A yang memiliki fungsi identik dengan PCF8574 tetapi mencakup rentang alamat dari 0x38 hingga 0x3F.

Alamat yang sebenarnya digunakan perangkat Anda dapat diperiksa dengan I2CScanner. Ada beberapa pemindai I2C sederhana yang tersedia dari berbagai sumber. Yang ini di https://github.com/farmerkeith/I2CScanner juga mengidentifikasi beberapa perangkat yang ditemukan.

Langkah 3: Koneksi

Koneksi
Koneksi

Terima kasih kepada ChaitanyaM17 yang menyediakan diagram Fritzing yang menggambarkan koneksi, dijelaskan di bawah ini.

Kekuasaan:

Modul LCD memiliki pin di sisi bawah berlabel "5.0V". Di sebelah kanan, bersebelahan dengan itu adalah dua pin tidak berlabel yang keduanya di-ground.

Memegang modul serial dengan antarmuka I2C di ujung kiri, ada 16 pin di tepi bawah. Yang pertama adalah ground, dan yang kedua adalah +5v. Pilihan lain adalah menggunakan dua pin bawah pada antarmuka I2C untuk daya, tetapi saya merasa lebih nyaman menggunakan pin seperti dijelaskan di atas.

antarmuka I2C. Pada modul serial, pin paling atas adalah SCL (clock) dan menuju ke Arduino A5. Pin kedua adalah SDA (data) dan masuk ke Arduino A4.

Antarmuka cetak LCD. Ada 6 sambungan antara modul serial dan pelindung LCD Keypad, semuanya antara pin tanpa label. Saya akan mengidentifikasi mereka pada modul LCD dengan menghitung dari Kanan ke Kiri, dengan pin pertama sebagai 1. Ada 2 blok 8, jadi mereka pergi dari 1 hingga 16. Saya mengidentifikasi mereka pada modul serial I2C dengan menghitung dari Kiri ke Benar, ada juga 16 di antaranya. Selain itu, saya memberi label pada setiap kabel, yang merupakan pin setara pada Arduino yang biasanya dikaitkan dengan fungsi itu, dalam hal koneksi langsung tanpa modul serial.

Jadi 6 koneksi data tersebut adalah:

Setara dengan Arduino // Pin modul serial // Pin modul LCD Keypad

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

Kontrol lampu latar LCD: Ini menggunakan satu koneksi lagi:

Setara dengan Arduino // Pin modul serial // Pin modul LCD Keypad

D10 //16 // 11

Antarmuka keypad: Ini menggunakan kabel tunggal dari pin modul LCD di sisi bawah berlabel "A0", ke pin A0 di Arduino. Setidaknya itu cukup mudah!

Langkah 4: Membuat Kunci RST Dapat Digunakan Mirip dengan 5 Tombol Lainnya

RST dapat dihubungkan langsung ke input RESTART dari Arduino Nano.

Namun jika Anda ingin kunci RST dapat digunakan dalam perangkat lunak untuk hal lain, ini dapat dilakukan dengan menghubungkan resistor 15K antara pin RST dan pin A0 di sisi bawah pelindung keypad LCD.

Ini berfungsi sebagai berikut: Ada resistor 2K antara +5V dan tombol Kanan. Kemudian rangkaian resistor yang semakin besar untuk masing-masing tombol lainnya (330R ke tombol UP, 620R ke tombol DOWN, 1K ke tombol KIRI, dan 3K3 ke tombol SELECT. Semua tombol (termasuk tombol RST) terhubung ke Ketika terhubung ke konverter A/D 10 bit (seperti untuk Arduino Nano A0) mereka memberikan kira-kira nilai berikut:

Kanan = 0; Naik = 100; Bawah = 260; Kiri = 410; Pilih = 640.

Dengan resistor 15 k ke RST, ini menghasilkan sekitar 850.

Perangkat lunak akan menggunakan nilai di sekitar titik tengah di antara nilai-nilai ini untuk memutuskan tombol mana yang telah ditekan.

Langkah 5: Perangkat Lunak

Perangkat lunak yang berguna tentu saja merupakan latihan bagi pembaca. Namun untuk memulai, Anda dapat melihat perangkat lunak pengujian saya. Saya menggunakan perpustakaan NewLiquidCrystal, yang berisi dukungan untuk antarmuka I2C. Semuanya hanya berfungsi, setelah saya menginstal perpustakaan dengan benar.

Intinya adalah membalikkan polaritas perintah Backlight OFF dan ON (karena transistor pada modul I2C seperti yang dijelaskan di bagian Deskripsi Bagian).

PEMBARUAN 22 Agustus 2019

Jika Anda memiliki masalah dengan layar LCD yang tidak berfungsi, silakan periksa alamat I2C ransel serial Anda menggunakan pemindai I2C. Pemindai yang sesuai terpasang. Kemudian jika perlu sesuaikan parameter pertama dalam pernyataan

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Langkah 6: Tinjauan dan Diskusi

Seperti yang Anda lihat, saya membuat fungsi utama berfungsi.

Niat saya selanjutnya adalah memasukkan ini ke dalam kotak proyek sebagai bagian dari proyek lain. Namun setelah menempuh jalan ini saya mengetahui bahwa ada kesulitan lain yang tidak saya antisipasi.

Kesulitannya adalah modul LCD Keypad ini tidak diatur untuk dipasang di dalam kotak. Kotak apa saja. Tombol dari 6 tombol berada jauh di bawah tingkat layar LCD, sehingga jika modul dipasang di dalam kotak (misalnya di tutupnya) dengan bagian atas papan sirkuit LCD rata dengan bagian bawah tutupnya, bagian atasnya dari kunci sekitar 7mm di bawah bagian atas tutupnya.

Solusi yang mungkin adalah:

a) Tahan dengan itu. Bor lubang akses di tutupnya dan gunakan alat (misalnya jarum rajut yang dipotong dengan diameter yang sesuai) untuk menekan tombol.

b) Lepaskan LCD dari papan sirkuit modul dan lakukan operasi pada keypad sehingga kedua komponen dapat dipasang pada tutup kotak proyek secara mandiri (saya pikir mungkin masih ada masalah dengan tombol yang terlalu pendek)

c) lepaskan tombol yang ada dan ganti dengan tombol yang lebih tinggi. Tombol baru harus memiliki tinggi sekitar 13 mm sehingga dapat dioperasikan melalui tutup kotak proyek). Sakelar tombol pengganti sudah tersedia dalam berbagai ketinggian, termasuk 13mm.

d) buang modul pelindung keypad LCD dan gunakan unit LCD dan keypad terpisah (yaitu memulai dari awal). Ada berbagai macam unit keypad yang tersedia, namun saya belum melihat satu pun dengan tata letak 6 tombol yang sama seperti pada modul ini (yaitu Pilih, Kiri, Atas, Bawah, Kanan, Mulai Ulang). Ini mungkin bukan masalah besar, tetapi salah satu alasan saya memulai dengan modul ini adalah karena menurut saya tata letak kunci inilah yang saya inginkan.

Saya berencana untuk menggunakan solusi c) di atas, dan melihat bagaimana saya melakukannya.

Cuplikan informasi lain yang mungkin menarik:

Dengan lampu latar ON, konsumsi proyek ini saat ini adalah: Arduino Nano 21.5 ma; Modul serial 3,6 ma; Modul LCD 27,5 mA; Jumlah 52mA.

Dengan lampu latar OFF, konsumsi proyek ini saat ini adalah: Arduino Nano 21.5 ma; Modul serial 4,6 ma; Modul LCD 9,8 mA; Jumlah 36mA.

Direkomendasikan: