2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Oldingi Instructable -ning birida men sizga Arduino Uno -ga LCD -ni qanday ulash va ulashni va undagi qiymatlarni ko'rsatishni ko'rsatdim. Ammo kuzatilganidek, ulanishlar juda ko'p edi va agar loyiha juda ko'p simlar tufayli buzila boshlasa.
Ushbu ko'rsatmada men sizga LCD -ni I2C -ga qanday ulashni ko'rsataman, u faqat LCD -ni boshqarish va ishlatish uchun 4 ta pinli bo'ladi. Shunday qilib, boshlaylik.
1 -qadam: zarur komponentlar
Ushbu loyiha uchun sizga kerak bo'ladi:
- Arduino Uno
- 16x2 LCD displey
- 16x2 LCD displey uchun I2C
- O'rnatish simlari
Bularning barchasi bilan ulanishlar qismiga o'tamiz.
2 -qadam: ulanishlar
Rasmlarga qarang va ulanishlarni yarating. Bu juda oddiy, faqat LCD portlariga I2C -ni ulang va uni joyiga lehimlang. Keyin SCL pinini Arduino -dagi A4 piniga va SDA pinini Arduino -dagi A5 piniga ulang.
Men I2C -ni lehimlamayman, chunki men LCD -da sarlavhali pinlarni lehimlaganman. Ammo men I2C -ni LCD -ga lehimlashni taklif qilaman
3 -qadam: kod
Arduino IDE -ga kiritilgan LCD I2C master kutubxonasi mavjud. Lekin undagi kod bilan ozgina muammo bor. Bu kutubxonadagi barcha misollar I2C standart manzilini 0x27 deb qabul qiladi. Shunday qilib, birinchi navbatda, bizning I2C manzilimiz nima ekanligini aniqlashimiz kerak. Buni I2C skaner kodi yordamida qilishimiz mumkin. Bizda I2C manzili bo'lsa, biz bu qiymatni misol kodiga almashtirib, undan foydalanishni boshlashimiz mumkin.
I2C skaner kodi:
#qo'shing
void setup () {Wire.begin (); Serial.begin (9600); while (! Seriyali); // ketma -ket monitorni kuting Serial.println ("\ nI2C skaneri"); } void loop () {bayt xato, manzil; int nDevices; Serial.println ("Tekshirilmoqda…"); nDevices = 0; uchun (manzil = 1; manzil <127; manzil ++) {// i2c_scanner // qurilmaning manzilni tan olganligini bilish uchun // Write.endTransmisstion ning qaytish qiymatidan foydalanadi. Wire.beginTransmission (manzil); xato = Wire.endTransmission (); if (xato == 0) {Serial.print ("0x manzilida I2C qurilmasi topilgan"); if (manzil <16) Serial.print ("0"); Serial.print (manzil, HEX); Serial.println ("!"); nDevices ++; } if if (error == 4) {Serial.print ("0x manzilidagi noma'lum xato"); if (manzil <16) Serial.print ("0"); Serial.println (manzil, HEX); }} if (nDevices == 0) Serial.println ("I2C qurilmalari topilmadi / n"); else Serial.println ("bajarildi / n"); kechikish (5000); // keyingi ko'rish uchun 5 soniya kuting}
Misol kodi (Serial monitorga kiritilgan belgilarni ko'rsatish uchun):
#qo'shing #qo'shing
LiquidCrystal_I2C lcd (0x3F, 20, 4); // 16 ta belgi va 2 qatorli displey uchun LCD manzilni 0x27 ga o'rnating
bo'sh o'rnatish ()
{lcd.init (); // lcd lcd.backlight () ni ishga tushirish; Serial.begin (9600); }
bo'sh halqa ()
{// belgilar ketma -ket port orqali kelganda … if (Serial.available ()) {// butun xabar kelishini biroz kuting (100); // ekranni tozalash lcd.clear (); // mavjud bo'lgan barcha belgilarni o'qing (Serial.available ()> 0) {// har bir belgini LCD lcd.write (Serial.read ()) da ko'rsatish; }}}
4 -qadam: Chiqish
Kodni yuklaganingizdan so'ng, siz borishga tayyormiz. Bu ko'rsatma uchun men ketma -ket chop etish kodini oldim. Endi kodni yuklaganingizdan so'ng, Serial monitorni oching va so'zni kiriting va "yuborish" tugmasini bosing. Endi siz ushbu qiymatni LCD displeyda ko'rishingiz kerak.