Isi kandungan:

Paparan LCD 5V Dengan Arduino Due 3.3V I2C: 5 Langkah
Paparan LCD 5V Dengan Arduino Due 3.3V I2C: 5 Langkah

Video: Paparan LCD 5V Dengan Arduino Due 3.3V I2C: 5 Langkah

Video: Paparan LCD 5V Dengan Arduino Due 3.3V I2C: 5 Langkah
Video: Using a 5 Volt LCD1602 Display with 3.3 Volt Microcontrollers #Shorts 2024, Julai
Anonim
Paparan LCD 5V Dengan Arduino Due 3.3V I2C
Paparan LCD 5V Dengan Arduino Due 3.3V I2C

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

Kenal pasti dan Tanggalkan Perintang
Kenal pasti dan Tanggalkan Perintang
Kenal pasti dan Tanggalkan Perintang
Kenal pasti dan Tanggalkan Perintang

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: