Mundarija:

I2C xalta bilan 1602 LCD klaviatura qalqoni moduli: 6 qadam
I2C xalta bilan 1602 LCD klaviatura qalqoni moduli: 6 qadam

Video: I2C xalta bilan 1602 LCD klaviatura qalqoni moduli: 6 qadam

Video: I2C xalta bilan 1602 LCD klaviatura qalqoni moduli: 6 qadam
Video: 5-.BIR OYLIK O'ZGARISH O'ZINGIZ BAHO BERING "Biogumus info uz" 2024, Iyul
Anonim
I2C xalta bilan 1602 LCD klaviatura qalqoni moduli
I2C xalta bilan 1602 LCD klaviatura qalqoni moduli

Katta loyihaning bir qismi sifatida men LCD displey va ba'zi oddiy menyularni boshqarish uchun klaviaturaga ega bo'lishni xohlardim. Men boshqa ishlarda Arduino -dagi ko'p kirish -chiqish portlaridan foydalanaman, shuning uchun men LCD uchun I2C interfeysini xohlardim. Shunday qilib, men DFRobotdan 1602 ta LCD klaviatura qalqoni moduli va LCD displeylar uchun anonim I2C seriyali modulidan iborat bo'lgan qo'shimcha qurilmani sotib oldim. Men ularni Arduino Nano bilan ishlatmoqchiman. Keyin men bu tarkibiy qismlarni birgalikda ishlashda qiyinchiliklar borligini ko'rdim - lekin bu mumkin. Shuning uchun men o'z tajribam bilan bo'lishmoqchiman va boshqalarga yordam berishni xohlayman.

Bu fotosurat LCD displeyda xabarlarni ko'rsatadigan va tugmachalarni bosishni aniqlaydigan ishchi paneli. LCD displey I2C interfeysi orqali boshqariladi, shu jumladan LCD orqa nuri. Klaviatura tugmachalarini Arduino A0 pinida qabul qiladi (bu I2C interfeysi uchun bog'langan A4 va A5dan tashqari, har qanday analog pinlar bo'lishi mumkin).

1 -qadam: qismlar tavsifi - LCD klaviatura qalqoni moduli

Qismlarning tavsifi - LCD klaviatura qalqoni moduli
Qismlarning tavsifi - LCD klaviatura qalqoni moduli

LCD klaviatura qalqoni moduli tugmachalarni ushlab turadigan elektron plataning yuqori qismiga o'rnatilgan 1602 LCD displeydan iborat bo'lib, ular LCD ulanishlarning bir qismini oladi va ularni plataning pastki qismidagi sarlavhali pimlarga beradi. Men shuni tushunamanki, bu taxta Arduino Uno yoki shunga o'xshash qurilmaning yuqori qismiga o'rnatiladi va u shunday muhitda ishlashi uchun to'g'ri pin joylashishini ta'minlaydi. Men bu modulni Ebayda Xitoyda sotuvchidan sotib oldim. Kengashning pastki (klaviatura) tomonidagi sarlavhali pinlar asosan etiketkalangan, lekin yuqori qismidagi, ya'ni LCD interfeysi bo'lgan pinlar etiketlanmagan. Biroq, LCD -dagi pinlar etiketlanadi.

2 -qadam: qismlar tavsifi - I2C seriyali moduli

Qismlarning tavsifi - I2C seriyali moduli
Qismlarning tavsifi - I2C seriyali moduli

Seriyali modulda I2C uchun odatiy 4-pinli sarlavha va men tushungan bir qator markirovka qilinmagan sarlavhali pinlar to'g'ridan-to'g'ri LCD modulining pastki qismiga ulanishi kerak. LCD displeyidagi yorliqlarni o'rganib, men ketma -ket moduldagi pinlarning vazifalarini aniqlay oldim.

Bu modul I2C protokoli tugaydigan, manzilni boshqarish uchun 3 pinli (20 dan 27 gacha) va P0 dan P7 gacha bo'lgan 8 ta raqamli kirish/chiqish piniga ega bo'lgan IC PCF8574T ga asoslangan. PCF8574T ma'lumot varag'iga ko'ra, har bir kirish -chiqish pinida LET holati uchun erga tortish uchun FET bor va u kamida 20ma cho'kishi mumkin. Yuqori holatda, u vaqtinchalik faol tortish va keyin 0,1 mA davom etadigan tortishish oqimiga ega.

Ushbu modulda, P3dan tashqari, barcha raqamli kirish -chiqish pinlari sarlavhali pinlarga chiqariladi (rasmda o'ngda). P3 holatida, u tranzistorning poydevoriga ulangan (fotosuratda "LED" yorlig'i ostida, o'ng yuqori qismda ko'rinadi). Ushbu tranzistorning emitori Vss (erga) va kollektor 16 -pinli ulagichga ulangan, u erda LCD orqa nuri boshqariladi. Transistorlar tufayli mantiqiy holat dasturlar kutubxonasida taxmin qilingan holatga nisbatan teskari. Ya'ni, P3 pin past bo'lsa, LCD orqa nuri yoqiladi, P3 pin baland bo'lsa o'chadi.

Transistorning yorlig'ida L6 yozilgan, bu mening tadqiqotimga ko'ra, uni MMBC1623L6 ga aylantiradi, u minimal oqim 200 ga teng. 0,1 mA tayanch oqimi bilan u kollektorda LOW holatini saqlab turishi kerak (modul Pin 16) kamida 20mA kollektor oqimi bilan.

Bundan tashqari, ushbu modulda +5 va Ground o'rtasida ulangan 10K potentsiometr mavjud, uning o'zgaruvchan uchi 3 -pinli (rasmda pastdan uchinchi) chiqariladi. To'g'ridan -to'g'ri LCD -ga ulanganda, bu idish LCD kontrastini boshqaradi. Biroq, bu funktsiyani LCD ekranidagi alohida shunga o'xshash idish beradi, shuning uchun ketma -ket moduldagi bu qozon hech qanday funktsiyaga ega emas.

PCF8574T ning INT piniga hech qanday ulanish topa olmadim.

Yangilangan 22 avgust 2019 yil

Yuqorida aytib o'tganimizdek, PCF8574da 3 ta manzilni boshqarish pimi bor. Ko'rinib turibdiki, ular xalta taxtasida, A0, A1 va A2 etiketli o'tirgichlarga olib kelingan ko'rinadi. Ularni fotosuratda ko'rish mumkin. Men buni sinab ko'rmaganman, lekin bu pimlarning bir yoki bir nechtasini qo'shni prokladkalarga ulash orqali I2C manzilini 20 dan 27 gacha nazorat qilish mumkin. PCF8574A PCF8574 bilan bir xil funktsiyaga ega, lekin 0x38 dan 0x3F gacha bo'lgan diapazonlarni qamrab oladi.

Sizning qurilmangiz ishlatadigan manzilni I2CScanner yordamida tekshirish mumkin. Turli manbalardan olinadigan bir nechta oddiy I2C skanerlari mavjud. Bu https://github.com/farmerkeith/I2CScanner manzilida topilgan ba'zi qurilmalar ham aniqlanadi.

3 -qadam: ulanishlar

Ulanishlar
Ulanishlar

ChaitanyaM17 ga rahmat, u quyida tasvirlangan ulanishlar tasvirlangan Fritzing diagrammasini taqdim etdi.

Quvvat:

LCD modulining pastki qismida "5.0V" yorlig'i bor. O'ng tomonda, yonida ikkita tegilmagan pim bor.

I2C interfeysi bilan ketma -ket modulni chap chetida ushlab turganda, pastki chetida 16 ta pin bor. Ulardan birinchisi - er, ikkinchisi - +5v. Yana bir variant - quvvat uchun I2C interfeysidagi pastki ikkita pimdan foydalanish, lekin men yuqorida aytib o'tilganidek, pinlardan foydalanish qulayroq deb topdim.

I2C interfeysi. Seriya modulida yuqori pin SCL (soat) bo'lib, u Arduino A5 ga o'tadi. Ikkinchi pin - bu SDA (ma'lumotlar) va u Arduino A4 ga o'tadi.

LCD bosib chiqarish interfeysi. Seriyali modul va LCD klaviatura qalqoni o'rtasida 6 ta ulanish mavjud, ularning hammasi teglarsiz pinlar o'rtasida. Men ularni LCD -modulda o'ngdan chapga sanash orqali aniqlayman, birinchi pin 1 bilan. 8 ta 2 ta blok bor, shuning uchun ular 1 dan 16 gacha. Men ularni I2C seriyali modulida chapdan sanab sanab. To'g'ri, ulardan 16 tasi ham bor. Bundan tashqari, men har bir simga ketma -ket modulsiz to'g'ridan -to'g'ri ulanish holatida, Arduino -dagi bu funktsiya bilan bog'liq bo'lgan mos keladigan belgini beraman.

Shunday qilib, 6 ta ma'lumotlar ulanishi:

Arduino ekvivalenti // Seriyali modul pimi // LCD klaviatura moduli pimi

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

LCD orqa nuri boshqaruvi: bu yana bitta ulanishni ishlatadi:

Arduino ekvivalenti // Seriyali modul pimi // LCD klaviatura moduli pimi

D10 // 16 // 11

Klaviatura interfeysi: Bunda "A0" deb nomlangan LCD modul pinidan bitta sim ishlatiladi, bu A0 ni Arduino -ga ulash uchun. Hech bo'lmaganda, bu juda oson edi!

4 -qadam: RST tugmachasini boshqa 5 kalitga o'xshash qilish

RSTni to'g'ridan -to'g'ri Arduino Nano -ning RESTART kirishiga ulash mumkin.

Agar siz RST tugmachasini boshqa narsalar uchun dasturiy ta'minotda ishlatilishini xohlasangiz, buni LCD klaviatura ekranining pastki qismidagi RST va A0 pinlari orasidagi 15K rezistorni ulash orqali amalga oshirish mumkin.

Bu quyidagicha ishlaydi: +5V va O'ng tugma o'rtasida 2K qarshilik mavjud. Keyin boshqa tugmachalarning har biri uchun asta -sekin kattaroq rezistorlar zanjiri (330R yuqoriga, 620R pastga, 3K chapga va 3K3 SELECT tugmachasiga ulanadi. Barcha tugmalar (shu jumladan RST tugmasi) ulanadi. 10 bitli A/D konvertorga ulanganida (Arduino Nano A0 uchun) ular taxminan quyidagi qiymatlarni etkazib beradi:

O'ng = 0; Yuqoriga = 100; Pastga = 260; Chap = 410; = 640 ni tanlang.

RSTga 15 k qarshilik bilan u 850 ga yaqin etkazib beradi.

Qaysi tugma bosilganligini aniqlash uchun dasturiy ta'minot ushbu qiymatlar orasidagi o'rtadagi nuqtalarni ishlatadi.

5 -qadam: dasturiy ta'minot

Foydali dasturiy ta'minot, albatta, o'quvchi uchun mashqdir. Ammo boshlash uchun siz mening test dasturim bilan tanishishingiz mumkin. Men I2C interfeysini qo'llab -quvvatlaydigan NewLiquidCrystal kutubxonasidan foydalandim. Kutubxonalar to'g'ri o'rnatilganidan keyin hammasi ishladi.

Asosiy nuqta - "Backlight OFF" va "ON" buyruqlarining qutblanishini qaytarish edi (qismlar tavsifi bo'limida tushuntirilgan I2C modulidagi tranzistor tufayli).

Yangilangan 22 avgust 2019 yil

Agar sizda LCD displey ishlamay qolsa, I2C skaneri yordamida ketma -ket xalta I2C manzilini tekshiring. Mos keladigan skaner biriktirilgan. Agar kerak bo'lsa, bayonotdagi birinchi parametrni to'g'rilang

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

6 -qadam: ko'rib chiqish va muhokama qilish

Ko'rib turganingizdek, men asosiy funktsiyalarni ishladim.

Mening keyingi niyatim - bu boshqa loyihaning bir qismi sifatida loyiha qutisiga qo'yish. Ammo bu yo'ldan borganimdan so'ng, men kutmagan boshqa qiyinchilik borligini bilib oldim.

Qiyinchilik shundaki, bu LCD klaviatura moduli qutiga o'rnatish uchun o'rnatilmagan. Har qanday quti. 6 ta tugmachaning tugmalari LCD displey sathidan ancha pastda joylashgan, shuning uchun agar modul qutiga o'rnatilgan bo'lsa (masalan, qopqog'ida), LCD platasining yuqori qismi qopqoqning pastki qismiga to'g'ri keladi. kalitlar qopqog'ining yuqori qismidan taxminan 7 mm pastda joylashgan.

Mumkin bo'lgan echimlar:

a) Bunga toqat qiling. Qopqoqdagi kirish teshiklarini burang va tugmachalarni bosish uchun asbobdan (masalan, mos diametrli kesilgan naqshli igna) foydalaning.

b) LCD panelini modul platasidan olib tashlang va klaviaturada operatsiya o'tkazing, shunda ikkita komponent loyiha qutisi qopqog'iga mustaqil ravishda o'rnatiladi (menimcha tugmalar juda qisqa bo'lishi bilan muammo bo'lishi mumkin)

v) mavjud tugmalarni olib tashlang va ularni balandroq tugmalar bilan almashtiring. Yangi tugmalar balandligi taxminan 13 mm bo'lishi kerak, shunda ular loyiha qutisi qopqog'i orqali boshqariladi). O'zgartirish tugmachalari har xil balandliklarda, shu jumladan 13 mm.

d) LCD klaviatura qalqoni modulini olib tashlang va alohida LCD va klaviatura bloklarini ishlating (ya'ni boshidan boshlang). Klaviatura bloklarining keng assortimenti mavjud, lekin men bu moduldagi kabi 6 tugmachali tartibni ko'rmadim (ya'ni Tanlash, Chap, Yuqoriga, Pastga, O'ngga, Qayta ishga tushirish). Bu katta muammo bo'lmasligi mumkin, lekin men ushbu modulni ishga tushirishimning sabablaridan biri bu men xohlagan narsadir.

Men yuqoridagi c) yechim bilan borishni rejalashtiryapman va qanday ketayotganimni ko'rib chiqing.

Sizni qiziqtirishi mumkin bo'lgan ma'lumotlarning yana bir qismi:

Orqa yorug'lik yoniq bo'lsa, ushbu loyihaning joriy iste'moli: Arduino Nano 21,5 ma; Seriyali modul 3.6 ma; LCD modul 27,5 mA; Jami 52 mA.

Orqa yorug'lik o'chirilgan bo'lsa, ushbu loyihaning joriy iste'moli: Arduino Nano 21,5 ma; Seriya moduli 4.6 ma; LCD modul 9,8 mA; Hammasi 36 mA.

Tavsiya: