Isi kandungan:

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 Pelindung Keypad LCD Dengan Ransel I2C
1602 Modul Pelindung Keypad LCD Dengan Ransel I2C

Sebagai sebahagian daripada projek yang lebih besar, saya ingin mempunyai paparan LCD dan papan kekunci untuk navigasi beberapa menu ringkas. Saya akan menggunakan banyak port I / O di Arduino untuk pekerjaan lain, jadi saya mahukan antara muka I2C untuk LCD. Oleh itu, saya membeli beberapa perkakasan, yang terdiri daripada modul perisai Keypad LCD 1602 dari DFRobot dan modul bersiri I2C tanpa nama untuk LCD. Saya mahu menggunakannya dengan Arduino Nano. Kemudian saya dapati terdapat beberapa cabaran untuk menjadikan komponen ini berfungsi bersama - tetapi mungkin. Oleh itu, saya ingin berkongsi pengalaman saya dan mungkin menolong orang lain.

Foto ini adalah papan roti yang berfungsi, yang dapat memaparkan mesej di LCD dan mengenal pasti penekanan kekunci. LCD dikendalikan melalui antara muka I2C, termasuk lampu latar LCD. Tekan kekunci diterima oleh Arduino pada pin A0 (ia boleh menjadi pin analog, kecuali A4 dan A5 yang diikat untuk antara muka I2C).

Langkah 1: Huraian Bahagian - Modul Perisai Pad Kekunci LCD

Huraian Bahagian - Modul Perisai Pad Kekunci LCD
Huraian Bahagian - Modul Perisai Pad Kekunci LCD

Modul pelindung papan kekunci LCD terdiri daripada 1602 LCD yang biasa digunakan yang dipasang di atas papan litar yang memegang kekunci, dan yang mengambil sebahagian daripada sambungan LCD dan menjadikannya tersedia untuk pin pengepala di bahagian bawah papan litar. Saya faham papan ini dimaksudkan untuk dipasang di atas Arduino Uno atau yang serupa dan menyediakan susun atur pin yang tepat agar ia berfungsi di persekitaran itu. Saya membeli modul ini di Ebay dari vendor di China. Pin header di bahagian bawah (papan kekunci) papan tulis kebanyakannya dilabelkan tetapi pin di bahagian atas, yang merupakan antara muka LCD, tidak dilabel. Walau bagaimanapun, pin pada LCD itu sendiri dilabel.

Langkah 2: Huraian Bahagian - Modul Bersiri I2C

Huraian Bahagian - Modul Bersiri I2C
Huraian Bahagian - Modul Bersiri I2C

Modul bersiri mempunyai header 4-pin biasa untuk I2C, dan satu set pin header yang tidak berlabel yang saya fahami bertujuan untuk memasangkan terus ke bahagian bawah modul LCD. Dengan mengkaji label pada LCD, saya dapat mengenal pasti fungsi pin pada modul bersiri.

Modul ini didasarkan pada IC PCF8574T yang menamatkan protokol I2C, mempunyai 3 pin untuk kawalan alamat (20 hingga 27) dan mempunyai 8 pin input / output digital P0 hingga P7. Menurut lembaran data PCF8574T, setiap pin I / O mempunyai FET untuk menariknya ke tanah untuk keadaan RENDAH, dan dapat tenggelam sekurang-kurangnya 20ma. Di negara Tinggi, ia mempunyai tarikan aktif sementara dan arus tarikan berterusan 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 kes P3, ia disambungkan ke pangkal transistor (terlihat pada foto di bahagian kanan atas tepat di bawah label "LED"). Pemancar transistor itu disambungkan ke Vss (ground) dan pemungut disambungkan ke pin header 16, di mana ia dapat digunakan untuk mengawal lampu latar LCD. Kerana transistor, keadaan logiknya terbalik berbanding yang diandaikan di perpustakaan perisian. Maksudnya, lampu latar LCD dihidupkan ketika pin P3 rendah, dan MATI ketika pin P3 tinggi.

Label pada transistor mengatakan L6 yang menurut penyelidikan saya mungkin menjadikannya MMBC1623L6 yang mempunyai keuntungan arus minimum 200. Dengan arus asas 0.1 mA, ia harus dapat mengekalkan keadaan RENDAH pada pengumpulnya (modul Pin 16) dengan arus pengumpul sekurang-kurangnya 20mA.

Sebagai tambahan modul ini mempunyai potensiometer 10K yang dihubungkan antara +5 dan Ground, yang plumbumnya berubah-ubah dibawa ke pin 3 (ketiga dari bawah dalam foto). Apabila disambungkan terus ke LCD, periuk ini akan mengawal kontras LCD. Walau bagaimanapun, fungsi itu disediakan oleh periuk serupa yang terpisah pada perisai LCD, jadi panci ini pada modul bersiri tidak berfungsi.

Saya tidak dapat mencari sambungan ke pin INT PCF8574T.

KEMASKINI 22 Ogos 2019

Seperti yang disebutkan di atas, PCF8574 mempunyai 3 pin kawalan alamat. Tampaknya ini dibawa ke pad pada papan ransel di mana mereka berlabel A0, A1 dan A2. Mereka dapat dilihat dalam foto. Saya belum menguji ini, tetapi nampaknya hampir pasti bahawa dengan memasang satu atau lebih pin ini ke pad yang bersebelahan, alamat I2C dapat dikendalikan pada jarak antara 20 hingga 27. Selanjutnya, terdapat peranti kedua yang hampir sama, iaitu PCF8574A yang mempunyai fungsi yang serupa dengan PCF8574 tetapi merangkumi julat alamat dari 0x38 hingga 0x3F.

Alamat yang sebenarnya digunakan oleh peranti anda boleh diperiksa dengan I2CScanner. Terdapat beberapa pengimbas I2C ringkas yang tersedia dari pelbagai sumber. Yang ini di https://github.com/farmerkeith/I2CScanner juga mengenal pasti beberapa peranti yang dijumpai.

Langkah 3: Sambungan

Sambungan
Sambungan

Terima kasih kepada ChaitanyaM17 yang memberikan gambarajah Fritzing yang menggambarkan hubungannya, yang dijelaskan di bawah.

Kuasa:

Modul LCD mempunyai pin di bahagian bawah berlabel "5.0V". Di sebelah kanan, bersebelahan dengan dua pin yang tidak berlabel yang keduanya tanah.

Memegang modul bersiri dengan antara muka I2C di hujung kiri, terdapat 16 pin di tepi bawah. Yang pertama adalah tanah, dan yang kedua ialah + 5v. Pilihan lain adalah menggunakan dua pin yang lebih rendah pada antara muka I2C untuk mendapatkan kuasa, tetapi saya merasa lebih senang menggunakan pin seperti yang dijelaskan di atas.

Antara muka I2C. Pada modul bersiri, pin atas adalah SCL (jam) dan ia menuju ke Arduino A5. Pin kedua ke bawah adalah SDA (data) dan ia menuju ke Arduino A4.

Antara muka cetakan LCD. Terdapat 6 sambungan antara modul bersiri dan perisai Pad Kekunci LCD, semuanya antara pin tanpa label. Saya akan mengenalinya di modul LCD dengan mengira dari Kanan ke Kiri, dengan pin pertama sebagai 1. Terdapat 2 blok dari 8, jadi mereka pergi dari 1 hingga 16. Saya mengenal pasti mereka di modul bersiri I2C dengan mengira dari Kiri ke Betul, ada juga 16 daripadanya. Sebagai tambahan, saya memberi label pada setiap wayar, yang merupakan pin setara pada Arduino yang biasanya dikaitkan dengan fungsi itu, sekiranya terdapat sambungan langsung tanpa modul bersiri.

Oleh itu, 6 sambungan data adalah:

Arduino setara // Pin modul bersiri // Pin modul Pad Kekunci LCD

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

Kawalan lampu latar LCD: Ini menggunakan satu lagi sambungan:

Arduino setara // Pin modul bersiri // Pin modul Pad Kekunci LCD

D10 // 16 // 11

Antara muka papan kekunci: Ini menggunakan wayar tunggal dari pin modul LCD di bahagian bawah berlabel "A0", untuk memasang pin A0 di Arduino. Sekurang-kurangnya itu cukup mudah!

Langkah 4: Menjadikan Kekunci RST Boleh Digunakan Sama dengan 5 Kekunci Lain

RST boleh dihubungkan terus ke input RESTART dari Arduino Nano.

Tetapi jika anda mahu kekunci RST dapat digunakan dalam perisian untuk perkara lain, ini dapat dilakukan dengan menyambungkan perintang 15K antara pin RST dan pin A0 di bahagian bawah perisai papan kekunci LCD.

Ini berfungsi seperti berikut: Terdapat perintang 2K antara + 5V dan kekunci Kanan. Kemudian rantai perintang yang semakin besar untuk setiap kekunci lain (330R ke kekunci UP, 620R ke kekunci BAWAH, 1K ke kekunci KIRI, dan 3K3 ke kekunci PILIH. Semua kekunci (termasuk kekunci RST) bersambung ke tanah. Apabila disambungkan ke penukar A / D 10 bit (seperti untuk Arduino Nano A0) mereka memberikan kira-kira nilai berikut:

Betul = 0; Naik = 100; Turun = 260; Kiri = 410; Pilih = 640.

Dengan perintang 15 k ke RST, ia menghasilkan sekitar 850.

Perisian ini akan menggunakan nilai sekitar titik tengah antara nilai-nilai ini untuk menentukan kunci mana yang telah ditekan.

Langkah 5: Perisian

Perisian yang berguna tentunya merupakan latihan bagi pembaca. Namun untuk memulakan anda, anda boleh melihat perisian ujian saya. Saya menggunakan perpustakaan NewLiquidCrystal, yang mengandungi sokongan untuk antara muka I2C. Semuanya berjaya, setelah saya memasang perpustakaan dengan betul.

Titik utama adalah membalikkan polaritas perintah Backlight OFF dan ON (kerana transistor pada modul I2C seperti yang dijelaskan dalam bahagian Penerangan Bahagian).

KEMASKINI 22 Ogos 2019

Sekiranya anda menghadapi masalah dengan paparan LCD tidak berfungsi, periksa alamat I2C beg galas bersiri anda menggunakan pengimbas I2C. Pengimbas yang sesuai dilampirkan. Kemudian jika perlu, sesuaikan parameter pertama dalam penyataan

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

Langkah 6: Ulasan dan Perbincangan

Seperti yang anda lihat, fungsi utama berfungsi.

Tujuan saya seterusnya adalah memasukkannya ke dalam kotak projek sebagai sebahagian daripada projek lain. Namun setelah berjalan di jalan ini saya belajar bahawa ada kesukaran lain yang tidak saya jangkakan.

Kesukarannya ialah modul Kekunci LCD ini tidak dipasang untuk dipasang dalam kotak. Kotak apa sahaja. Butang dari 6 kekunci berada jauh di bawah paras skrin LCD, jadi jika modul dipasang di dalam kotak (contohnya di penutup) dengan bahagian atas papan litar LCD siram dengan bahagian bawah penutup, bahagian atasnya kunci berada kira-kira 7mm di bawah bahagian atas penutup.

Penyelesaian yang mungkin adalah:

a) Bersabarlah. Bor lubang akses masuk penutup dan gunakan alat (contohnya jarum rajutan yang dipotong dengan diameter yang sesuai) untuk menekan butang.

b) Keluarkan LCD dari papan litar modul dan lakukan operasi pada papan kekunci sehingga kedua-dua komponen dapat dipasang pada penutup kotak projek secara bebas (saya rasa masih ada masalah dengan butang terlalu pendek)

c) tanggalkan butang yang ada dan gantinya dengan butang yang lebih tinggi. Tombol baru harus setinggi 13 mm sehingga dapat dikendalikan melalui penutup kotak projek). Suis butang pengganti tersedia dalam jarak ketinggian, termasuk 13mm.

d) buang modul perisai papan kekunci LCD dan gunakan unit LCD dan papan kekunci yang berasingan (iaitu bermula dari awal). Terdapat pelbagai unit papan kekunci yang tersedia, namun saya belum melihatnya dengan susun atur 6 kekunci yang sama seperti pada modul ini (iaitu Pilih, Kiri, Atas, Bawah, Kanan, Mulakan semula). Ini mungkin bukan masalah besar, tetapi salah satu sebab saya memulakan modul ini adalah kerana saya fikir susun atur utama ini adalah apa yang saya mahukan.

Saya merancang untuk pergi dengan penyelesaian c) di atas, dan lihat bagaimana saya pergi.

Coretan maklumat lain yang mungkin menarik:

Dengan lampu latar ON, penggunaan semasa projek ini adalah: Arduino Nano 21.5 ma; Modul bersiri 3.6 ma; Modul LCD 27.5 mA; Jumlah 52 mA.

Dengan lampu latar MATI, penggunaan semasa projek ini adalah: Arduino Nano 21.5 ma; Modul bersiri 4.6 ma; Modul LCD 9.8 mA; Jumlah 36 mA.

Disyorkan: