Mundarija:

I2C: 4 bosqichli 16x2 LCD displeydan foydalaning
I2C: 4 bosqichli 16x2 LCD displeydan foydalaning

Video: I2C: 4 bosqichli 16x2 LCD displeydan foydalaning

Video: I2C: 4 bosqichli 16x2 LCD displeydan foydalaning
Video: Секреты подключения нескольких LCD экранов к Arduino по I2C 2024, Noyabr
Anonim
I2C bilan 16x2 LCD -dan foydalaning
I2C bilan 16x2 LCD -dan foydalaning
I2C bilan 16x2 LCD -dan foydalaning
I2C bilan 16x2 LCD -dan foydalaning
I2C bilan 16x2 LCD -dan foydalaning
I2C bilan 16x2 LCD -dan foydalaning

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

Majburiy komponentlar
Majburiy komponentlar
Majburiy komponentlar
Majburiy komponentlar
Majburiy komponentlar
Majburiy 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

Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
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

Chiqish
Chiqish
Chiqish
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.

Tavsiya: