
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:00

Catatan ini bertujuan untuk menerangkan cara yang lebih mudah untuk menggunakan Arduino Due (atau papan 3.3V lain) dengan Paparan LCD 16x2 yang popular dengan modul penyesuai I2C.
Masalah awalnya ialah LCD memerlukan 5V agar lampu latar berfungsi dengan baik, tetapi pin SCL dan SDA harus beroperasi pada 3.3V untuk berkomunikasi dengan Arduino Due tanpa menyebabkan bahaya. Untuk menyelesaikannya, saya telah menemui dua pilihan:
Penyelesaian yang paling disebut adalah menggunakan Bi-Directional Logic Level Converter, yang memang menyelesaikan masalahnya. Tetapi ia juga menambahkan komponen lain ke dalam senarai anda dan sambungan pendawaian tambahan di litar anda
Cara lain yang saya dapati adalah dengan hanya melepaskan 2 perintang penarik dalam "ransel penyesuai I2C" dari LCD. Selain lebih mudah, ia mempunyai kelebihan lain yang dijelaskan dalam perbandingan di akhir. Kaedah ini menjadi fokus utama siaran ini
Bekalan
Arduino Kerana
Paparan LCD 16x2 dengan modul penyesuai I2C
Besi pematerian
Pam pematerian atau sumbu pematerian
Pinset
Langkah 1: Asal Penyelesaian
Penyelesaiannya tidak diciptakan oleh saya, saya melihat cadangan dan penjelasan yang cukup baik di Forum Arduino di pautan di bawah, yang akan saya hasilkan semula dalam catatan ini.
forum.arduino.cc/index.php?topic=553725.0
Jawapan dari: david_prentice
Saya tidak dapat menemui tutorial lengkap di internet dan, kerana ini adalah masalah yang sangat biasa, saya cuba mengemukakan penyelesaiannya di sini secara terperinci, menyaksikan ia benar-benar berfungsi, dan menambahkan maklumat yang dapat mengurangkan keraguan mengenai hasilnya.
Langkah 2: Penjelasan
Peranti
Agar komunikasi I2C berfungsi, ia memerlukan perintang tarik yang disambungkan ke pin SDA dan SCL. Ini kerana peranti hanya memutar pin ini RENDAH semasa berkomunikasi. Untuk mewakili TINGGI, ia tidak perlu mengirim RENDAH, dan berkat penarikannya, ia akan menjadi TINGGI. (pemahaman ini akan menjadi penting kemudian)
Ransel LCD "I2C" mempunyai dua resistor pull-up 4K7 yang memenuhi keperluan I2C. Tetapi kerana mereka disambungkan ke Vcc, jika anda menggunakan 5 V, mereka akan menarik SDA dan SCL ke 5 V.
Sekiranya anda melihat lembaran data, anda dapat melihat bahawa, tidak seperti papan lain, Due sudah mempunyai perintang penarik 1K5 di atas SDA, pin SCL utamanya, yang menariknya ke 3.3 V.
Ujian
- Paparan LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Sekiranya anda hanya menyambungkan LCD di Due (mengikuti pendawaian di atas), pullup Due 1k5 (atau 1k0) dihubungkan ke 3.3V dan pullup LCD 4K7 yang disambungkan ke 5 V akan menghasilkan garis I2C terbiar pada 3.7 V (3.6 V dengan 1k0). Itu tidak baik, kerana lembaran data Due menetapkan voltan maksimum 3.6 V untuk saluran I / O-nya.
Dengan menguji senario ini, dengan hanya LCD, saya mendapat 3, 56 V. Dengan menambahkan Modul EEPROM ke SDA dan SCL yang sama, ia meningkat hingga 3.606 V. Dalam kedua kes semuanya berfungsi dengan normal, tetapi jauh dari voltan ideal tahap mempertimbangkan 3.6 V yang ditetapkan maksimum.
Jadi ya, ada kemungkinan ia akan berfungsi seperti yang saya lakukan sementara tidak melakukan perubahan. Tetapi tahap voltan masih jauh dari ideal dan beberapa perbezaan pada penarikan Due atau LCD boleh menyebabkannya melebihi had 3.6 V. (Sebaiknya uji terlebih dahulu sebelum berhati-hati dengan potensiometer 20K atau 100K, apakah rintangan paling rendah antara pin 5 V dan SCL / SDA sebelum mencapai 3.6 V, walaupun penyelesaian yang lain jauh lebih selamat dan mungkin lebih mudah)
Penyelesaian
Penyelesaian yang dikemukakan adalah dengan hanya mengeluarkan resistor pull-up dari beg galas LCD, yang cuba menarik garisan hingga 5 V. Kemudian, hanya resistor pull-up Due onboard yang tersisa, menarik garis SCL dan SDA ke 3.3V. Ia berfungsi dengan sempurna, mengekalkan pin idle sekitar 3.262 V!
Sambungannya tetap sama:
- Paparan LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Sekiranya anda tertanya-tanya apakah LCD tidak akan menarik garis ke 5 V untuk mewakili TINGGI ketika berkomunikasi, ingat bahawa pada I2C peranti hanya menarik garis RENDAH, menjadi isyarat TINGGI yang ditunjukkan ketika tidak mengganggu, yang akan menjadi 3.3 V dari penarikan dalam talian Due.
Juga, 3.3 V mencukupi untuk beg galas I2C dipertimbangkan sebagai isyarat TINGGI.
Langkah 3: Kenal pasti dan Keluarkan Resistor


Gambar di atas menunjukkan warna merah perintang penarik yang saya dapati dalam modul saya.
Kenalpasti
Oleh kerana beg galas penyesuai LCD I2C mungkin berbeza, perintang mungkin tidak dalam konfigurasi yang sama. Untuk mengenal pasti perintang penarik, anda boleh menggunakan multimeter dengan ujian kesinambungan. Setiap perintang penarik harus mempunyai satu hujung yang disambungkan ke pin SCL atau SDA dan hujung yang lain ke Vcc.
Dalam kes saya, terdapat tiga perintang 4K7 (472 dalam kod SMD) di papan. Hanya dua dari mereka yang memenuhi syarat di atas, menunjukkan ini adalah tarikan yang kami cari!
Untuk langkah berjaga-jaga (jika atas sebab tertentu bukan 4K7), saya juga menguji perintang yang lain dan mengesahkan tidak ada yang memenuhi syarat untuk menjadi penarik.
Keluarkan
Sekarang, yang harus anda lakukan ialah membinasakan mereka! Lebih senang jika anda mempunyai pam pemateri atau penyolder sumbu dan pinset untuk membantu.
Langkah 4: Perbandingan Antara Penyelesaian
Penukar Tahap Logik Dua Hala (LLC)
Kelebihan:
Tidak memerlukan peralatan atau kemampuan pematerian
Keburukan:
Iklan lebih banyak kabel dan LLC ke senarai komponen senarai anda
Hubungan Messier dengan komponen tambahan
Sedikit lebih mahal
Menahan Perintang tarik LCD
Kelebihan:
Hasil akhir yang lebih bersih
Anda mungkin boleh melakukannya dengan segera, tidak perlu menunggu LLC
Terutama baik jika anda ingin mengurangkan pelbagai komponen dan kerumitan pemasangan dalam projek yang kompleks atau yang ingin anda tiru
Keburukan:
Mengubah litar LCD (Sekiranya anda menginginkannya "siap digunakan" dengan Uno, yang sudah mempunyai penarikan 4K7, anda boleh mengurungkan perubahan yang menyelesaikannya)
Langkah 5: Pertimbangan Akhir
Saya harap tutorial ini memberi penerangan mengenai masalah keserasian ini dan beberapa kemungkinan penyelesaiannya.
Sekiranya anda mempunyai idea penambahbaikan, penjelasan yang lebih baik, penyelesaian baru, atau terdapat kesilapan dalam siaran, sila beritahu saya dalam komen!:)
Disyorkan:
Paparan LCD I2C / IIC - Gunakan LCD SPI ke Paparan LCD I2C Menggunakan Modul SPI hingga IIC Dengan Arduino: 5 Langkah

Paparan LCD I2C / IIC | Gunakan LCD SPI ke Paparan LCD I2C Menggunakan Modul SPI hingga IIC Dengan Arduino: Hai kawan kerana SPI LCD 1602 biasa mempunyai terlalu banyak wayar untuk disambungkan sehingga sangat sukar untuk menghubungkannya dengan arduino tetapi ada satu modul yang tersedia di pasaran yang boleh menukar paparan SPI menjadi paparan IIC jadi anda hanya perlu menyambungkan 4 wayar
Paparan LCD I2C / IIC - Tukarkan SPI LCD ke Paparan LCD I2C: 5 Langkah

Paparan LCD I2C / IIC | Tukar LCD SPI ke Paparan LCD I2C: menggunakan paparan spi lcd memerlukan terlalu banyak sambungan untuk dilakukan yang sangat sukar untuk dilakukan. Saya menjumpai modul yang dapat menukar lcd i2c ke lcd jadi mari kita mulakan
Regulator Voltan Breadboard Dengan Paparan / Paparan Regulador De Voltagem Com Para Placa De Ensaio: 8 Langkah

Breadboard Voltage Regulator With Display / Regulador De Voltagem Com Display Para Placa De Ensaio: Dapatkan komponen yang diperlukan yang terdapat dalam senarai yang dilampirkan (terdapat pautan untuk membeli atau melihat ciri-cirinya). Pautan os untuk poderem merangkumi ciri sebagai ciri
Suhu Paparan pada Modul Paparan LED P10 Menggunakan Arduino: 3 Langkah (dengan Gambar)

Suhu Paparan pada Modul Paparan LED P10 Menggunakan Arduino: Dalam tutorial sebelumnya telah diberitahu bagaimana cara memaparkan teks pada Modul P10 Paparan LED Dot Matrix menggunakan Konektor Arduino dan DMD, yang dapat anda periksa di sini. Dalam tutorial ini kita akan memberikan tutorial projek yang mudah dengan menggunakan modul P10 sebagai tampilan med
Teks Paparan pada Paparan LED P10 Menggunakan Arduino: 5 Langkah (dengan Gambar)

Teks Paparan di Paparan LED P10 Menggunakan Arduino: Dotmatrix Display atau lebih sering disebut sebagai Running Text sering dijumpai di kedai sebagai alat untuk mengiklankan produk mereka, praktikal dan fleksibel dalam penggunaannya yang mendorong pelaku perniagaan menggunakannya sebagai nasihat iklan. Kini penggunaan Dot