Arduino va belgilar LCD displey. I2c displey bilan ishlash uchun muqobil kutubxona
Shuningdek o'qing
Salom, aziz o'quvchi! Bugungi mavzu sizning belgilaringiz va oddiy rasmlarni ramzlar displeyida ko'rsatishdir. Agar siz displeyda mavjud bo'lgan standart katalogda kerakli belgini topa olmasangiz yoki oddiy grafiklarni ko'rsatmoqchi bo'lsangiz, ushbu maqola foydali bo'ladi.
Birinchi qism mahalliy belgilarning oddiy ko'rinishini ko'rib chiqadi.
Sxemani yig'ish
LCD1602/LCD2004 displeyini Arduino-ga qanday ulash haqida bir necha bor eslatib o'tilgan, biz kichik diagrammani joylashtiramiz; Agar sizda potansiyometr bo'lmasa, uni sxemadan chiqarib tashlashingiz mumkin. Qolganlari uchun faqat kerakli kontaktlarni simlar bilan ulang.
Belgilarni yaratish
Bizning oldimizda turgan navbatdagi vazifa o'z belgilar to'plamini yaratishdir. Siz sezganingizdek, displeydagi belgilar hali ham piksellardan iborat. Va oldindan o'rnatilgan piksellar o'rniga o'zingizning piksellar to'plamini ko'rsatishga imkon beradigan usul mavjud.
Har bir displey katakchasida ko'rsatilgan rasm 7 (yoki ba'zi hollarda 8) bayt sifatida kodlangan. Har bir baytda faqat eng past 5 bit ma'noga ega. Siz allaqachon tushunganingizdek, massivning har bir elementi satr va undagi har bir bit alohida pikseldir.
Endi chizamiz! Yaxshiyamki, siz xohlagan tasvirning bitmap tasvirini olishingiz mumkin bo'lgan sayt mavjud. (http://www.quinapalus.com/hd44780udg.html)
Rasmni bosish orqali siz kerakli pikselni yaratishingiz mumkin, masalan:
Bunday semiz mushuk yuzini yaratishga nima imkon beradi:
Keling, ushbu ma'lumotlarni eslaylik va dasturlashni boshlaymiz.
Dasturlash
Displey 1602 bir vaqtning o'zida 8 tadan ko'p bo'lmagan o'z belgilaringizni ko'rsatishga imkon beradi (o'zingiz xohlagancha o'rnatilgan).
Belgini yaratish uchun createChar(num, data), bu yerda buyrug'idan foydalanish kerak
- num - o'z belgingizning raqami (0 dan 7 gacha)
- ma'lumotlar 7(8) baytdan iborat bir xil massivdir.
Har bir belgini aniqlash uchun uni yozib olish kifoya.
Bayt l = (0, 2, 5, 24, 24, 0, 0);Bayt m = (0, 0, 0, 14, 14, 0, 0);
Bayt r = (0, 8, 20, 3, 3, 0, 0);
Va displeyni ishga tushirgandan so'ng siz quyidagilarni yozishingiz kerak:
lcd.createChar(0, l);
lcd.createChar(1, m);
lcd.createChar(2, r);
Va, aslida, buyruq bilan belgilarni ko'rsating:
lcd.write(bayt(0));
lcd.write(bayt(1));
lcd.write(bayt(2));
Ifoda bayti(x) – x sonini bayt turiga o'zgartiradi.
Va nihoyat, (5x8) belgilar o'lchamiga ega LCD1602 da Arduino belgisini ko'rsatish kodini ko'rib chiqaylik.
// Displey bilan ishlash uchun kutubxonani ulang
#o'z ichiga oladi // Displey ulangan pinlarni o'rnating (maqola boshidagi rasmga ko'ra) LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Belgilarimizni o'rnating. Bu erda "B" prefiksi keyingi nima yozilishini bildiradi // ikkilik koddagi raqam, ya'ni. B00011 = 5 bayt a3 = ( B00011, bayt a2= (B00000, bayt a1=(B11000, bayt a4=( B00000, bayt a5=( B00000, bayt a6=( B00000, bayt a7=( B00000, bayt a8=(B00100, // Initsializatsiya tartibi lcd.begin(16, 2); // Displeyni ishga tushiring. lcd.print ("Arduino"); // Oddiy qatorni chiqaring lcd.setCursor(1,1); // Ikkinchi qatorga o'tkazing lcd.print ("Logo"); // Boshqa juda oddiy qatorni chiqaring Ko'k yorug'lik bilan LCD2004 belgilar displeyi
- suyuq kristall displey (Suyuq kristall displey), uning ekrani bir vaqtning o'zida 80 tagacha belgilarni (20 ta ustun, 04 qator) ko'rsatishga qodir. Ulanish sinxron 8-bitli parallel interfeys orqali amalga oshiriladi. Belgilarni ko'rsatish bilan ishlash misollari bo'limda tasvirlangan. LCD2004 displeyini parallel interfeys orqali ulash I2C avtobusiga qaraganda biroz murakkabroq va kontrastni sozlash uchun qo'shimcha element ham talab qilinadi. Displey ma'lumotlar shinasi 8 qatordan iborat (D0-D7), lekin rasmda ko'rsatilganidek, faqat yuqoriroq 4 liniyani (D4-D7) ulasangiz, bu displey tezligini kamaytirmaydi. Qulaylik uchun biz displeyning D4-D7 pinlarini bir xil nomdagi D4-D7 pinlariga uladik. . Displeyning D0-D7, E va RS pinlarini kutubxona ob'ektini e'lon qilishda ularni eskizda ko'rsatib, istalgan pinlarga ulashingiz mumkin. 5 VDC displeyning mantiqiy ta'minot kuchlanishi displeyning VDD (VCC) va VSS (GND) pinlariga beriladi. 5 VDC orqa yorug'lik manbai kuchlanishi displeyning A (anod) va K (katod) terminallariga beriladi. Displeyning V0 piniga 0 ... +5 V DC kontrastini o'rnatish uchun potentsial qo'llaniladi. Belgilar displeyi HD44780 kontrolleri tomonidan boshqariladigan STN (Super Twisted Nematic) LCD displeyga asoslangan va sinxron parallel 8 bitli interfeysga ega. Displey ko'k rangli LED yoritgichi bilan jihozlangan va bir vaqtning o'zida 80 tagacha belgilarni (20 ta ustun, 04 qator) ko'rsatishga qodir, bu displeyning nomi: LCD2004. HD44780 boshqaruvchisida raqamlar, lotin belgilar va ularni displeyda ko'rsatish uchun ba'zi yapon belgilarni saqlaydigan ROM mavjud. Yo'qolgan belgilar, shu jumladan. va rus tilidagi yoki nostandart belgilar (masalan, “ko'ngilochar” belgilar) yozuvlarini ko'rsatish uchun kirillcha belgilar kontrollerning RAM xotirasiga yuklanishi mumkin. Ushbu darsda biz suyuq kristall ko'rsatkichlarni xarakterli sintez qilish, ularni Arduino platasiga ulash va LiquidCrystal va LiquidCrystalRus kutubxonalari yordamida indikatorlarni boshqarish haqida gapiramiz. Etti segmentli LED ko'rsatkichlari elektron qurilmalar uchun eng arzon displey varianti bo'lsa-da, ulardan foydalanish ikkita muhim kamchilik bilan cheklangan. Matn ma'lumotlarini yoki 4 ta raqamdan katta raqamlarni ko'rsatish uchun suyuq kristalli belgilarni sintezlovchi ko'rsatkichlardan (displeylardan) foydalanish ancha amaliydir. Ularning afzalliklari quyidagilardan iborat: Bozorda turli ishlab chiqaruvchilarning ko'plab turli xil suyuq kristalli displey (LCD) ko'rsatkichlari mavjud. Ularning deyarli barchasi parametrlari, interfeys signallari va boshqaruv buyruqlari bo'yicha o'xshashdir. Ayni paytda Rossiya bozorida eng keng tarqalgan LCD ko'rsatkichlari Winstar, Tayvan tomonidan ishlab chiqarilgan qurilmalardir. Men ushbu kompaniyaning ko'rsatkichlariga murojaat qilaman. Ammo ma'lumotlar boshqa ishlab chiqaruvchilarning LCD displeylari uchun ham juda mos keladi. Umumiy ma'lumot. Belgilarni sintez qiluvchi yoki ramziy ko'rsatkichlar ma'lumotni ma'lum sig'imdagi belgilar shaklida aks ettiradi. Bitta tanishlik bitta belgini ko'rsatadi. Tanish joylar soni indikatorning raqamli sig'imini aniqlaydi. Ko'rsatkichlar to'g'risidagi ma'lumotlar bir nechta satrlarda ko'rsatilishi mumkin, shuning uchun ushbu turdagi ko'rsatkichlar uchun har bir satrdagi belgilar soni va qatorlar soni ko'rsatiladi. Ma'lumot LED yoritgichli suyuq kristalli matritsada ko'rsatiladi. Orqa yorug'lik turli xil ranglarda bo'ladi, bu monoxrom matn ma'lumotlarini sezilarli darajada jonlantiradi. Suyuq kristall matritsani boshqarish va indikator interfeysini tashkil qilish uchun o'rnatilgan HD44780 boshqaruvchisi yoki uning to'liq analoglari ishlatiladi. Ushbu kontroller indikator interfeysi signallari va boshqaruv buyruqlarini aniqlaydi. HD44780 suyuq kristall displey (LCD) displeylari uchun de-fakto standartga aylandi. PDF formatidagi HD44780 kontrolleri uchun texnik hujjatlarni ushbu havolada ko'rish mumkin -. Ehtimol, kimdir ushbu kontrollerning analoglaridan biri - SPLC780D hujjatlarini yoqtirishi mumkin. PDF formatidagi havola -. Winstar'dan LCD belgilar ko'rsatkichlari. Men ushbu kompaniyaning LCD ko'rsatkichlari uchun quyidagi variantlarni bilaman. LCD indikatorni mikrokontrollerga ulash. Ulanish diagrammalari, vaqt diagrammalari, signal parametrlari, boshqaruv buyruqlari va belgilar kodlari HD44780 kontroller uchun hujjatlarda batafsil tavsiflangan. Men ko'rsatkichlarni mikrokontrollerlarga ulash bo'yicha faqat eng kerakli ma'lumotlarni taqdim etaman. Odatda, LCD ko'rsatkichlari 16 pinga ega. 0 - rekord; 1 - o'qish. Ko'pgina ilovalarda o'qish funktsiyasi ishlatilmaydi, shuning uchun signal ko'pincha erga ulanadi. PIN raqami (birinchi ustun) eng keng tarqalgan variant uchun. Oldingi bo'limdagi jadvaldan ko'rsatkich turi uchun hujjatlarni yuklab olish orqali tekshirish yaxshiroqdir. Belgilar LCD displeylari mikrokontrollerga ikkita ulanish variantini qo'llab-quvvatlaydi: Birinchi variant displeyga yuqori tezlikda ma'lumotlarni uzatishni ta'minlaydi. Ikkinchisi indikatorni ulash uchun 4 ta kamroq pinni talab qiladi. Shubhasiz, almashinuv tezligini oshirishdan ko'ra, ulanish pinlarining sonini kamaytirish muhimroqdir. Bundan tashqari, LCD ko'rsatkichlari 10-20 ms regeneratsiya davriga ega bo'lgan juda sekin qurilmalardir. Belgili LCD displeyni Arduino platasiga ulash. Men WH2004A indikatorini (har biri 20 belgidan iborat 4 qator) to'rt bitli almashinuv rejimida Arduino UNO R3 platasiga ulayman. WH2004 LCD displey uchun hujjatlarni ushbu havolada ko'rishingiz mumkin. Diagramma shunday ko'rinadi. R2 va R3 rezistorlari indikatorning kontrastini aniqlaydi. Siz trim rezistorini ulashingiz va kerakli tasvir ravshanligini o'rnatishingiz mumkin. Men tez-tez WH2004 ko'rsatkichlaridan foydalanaman va sxemalarimda men ushbu qarshilik qiymatlarini tanlayman. Men rezistor R1 (30 Ohm) orqali indikatorning orqa yorug'lik LEDlarini 5 V quvvat manbaiga uladim. Shu bilan men oqimni taxminan 25 mA ga o'rnatdim. Xira, ammo yorqin. Siz qorong'uda yaxshi ko'rishingiz mumkin. WH2004 ko'rsatkichlari orqa yorug'lik oqimini 580 mA gacha bo'lishiga imkon beradi. Arduino LiquidCrystal tizimidagi LCD ko'rsatkichlarini boshqarish uchun kutubxona. HD44780 boshqaruvchisiga asoslangan LCD ko'rsatkichlarini boshqarish uchun standart kutubxona mavjud. Men uning usullarini batafsil tasvirlab beraman. Suyuq kristall(…) Sinf konstruktori. Turli xil argumentlar soni bo'lishi mumkin. Argumentlar: LiquidCrystal disp(6, 7, 2, 3, 4, 5);
bekor boshlash (ko'nikma, qatorlar) Indikator interfeysini ishga tushiradi. Ko'rsatkich o'lchamini o'rnatadi. Boshqa sinf funktsiyalaridan foydalanishdan oldin usul birinchi bo'lib chaqirilishi kerak. Argumentlar: disp.begin(20, 4); // biz displeydan foydalanamiz - 20 belgidan iborat 4 qator
bekor qilish () Ekranni tozalash, kursorni yuqori chap burchakka qo'yish. disp.clear(); // displeyni tiklash
uyni bekor qilish() Kursorni yuqori chap burchakka qo'ying. disp.home(); // ekran boshiga
void setCursor(col, satr) Kursorni belgilangan joyga qo'yadi. setCursor(0,1); // kursorni ikkinchi qatorning boshiga olib boring
bayt yozish (ma'lumotlar) Ekranda belgini ko'rsatadi. O'tkazilgan baytlar sonini qaytaradi. Quyidagi eskiz ketma-ket portdan olingan ma'lumotlarni ko'rsatadi. Ma'lumotlar Arduino IDE port monitori orqali uzatilishi mumkin. // LCD indikatorda seriyali port ma'lumotlarining chiqishi
Menda katta ko'rsatkich bor - 20 belgidan iborat 4 qator. Unda ikkita HD44780 kontrolleri mavjud. Shuning uchun, ketma-ket uzatiladigan belgilar birinchi navbatda birinchi qatorni, keyin uchinchisini, keyin ikkinchi va to'rtinchisini to'ldiradi. Bular. chiziq orqali. Bu xususiyat ma'lum turdagi ko'rsatkichlar uchun hisobga olinishi kerak. Har bir LCD indikator uchun hujjatlar belgilarni manzillash ketma-ketligini ko'rsatadi. bayt bosib chiqarish (ma'lumotlar) Ekranda matnni ko'rsatadi. O'tkazilgan baytlar sonini qaytaradi. Funktsiyada turli formatlar va ma'lumotlar turlari uchun turli chaqiruv shakllari mavjud. char d= 83;
int d= 83;
float d= 7,65432;
char harflari= (65, 66, 67);
int d= 83;
int d= 83;
int d= 83;
int d= 83;
disp.print(7.65432, 0); // “7” qatorini chop etadi
Displeyda matn qatorini chop etuvchi dasturga misol. // LCD indikatorida matn chizig'ini ko'rsatish
bekor kursor() Kursorni ko'rsatish rejimini yoqadi. Keyingi belgi chiqadigan joyning tagiga chizilgan. disp.cursor(); // kursorni ko'rsatishga ruxsat bering
void noCursor() Kursorni ko'rsatishni o'chiradi. disp.noCursor(); // kursor ko'rinishini o'chiring
void miltillash() Miltillovchi kursor rejimini yoqadi. Kursor() funksiyasi bilan birgalikda ishlatiladi. Natija aniq ko'rsatkich modeliga bog'liq. disp.blink(); // kursorni miltillashiga ruxsat bering
bekor noBlink() Miltillovchi kursor rejimini o'chiradi. disp.noBlink(); // miltillovchi kursorni o'chiring
bekor displey() Ekran noDisplay() tomonidan o'chirilgandan keyin yoqiladi. Ekran o'chirishdan oldin mavjud bo'lgan ma'lumotlarni ko'rsatadi. display.display(); // displeyni yoqing
bekor noDisplay() Ekranni o'chiradi. Ma'lumotlar xotirada saqlanadi va displey yoqilganda paydo bo'ladi. disp.noDisplay(); // displeyni o'chiring
void scrollDisplayLeft() Displey mazmunini bir belgi chapga aylantiradi. disp. scrollDisplayLeft(); // hamma narsani chapga siljiting
void scrollDisplayRight() Displey mazmunini bir belgi o'ngga aylantiradi. disp. scrollDisplayRight(); // hamma narsani o'ngga siljiting
void autoscroll() Matnni avtomatik aylantirish rejimini yoqing. Har bir belgi ko'rsatilganda, ekrandagi barcha matn bitta belgiga siljiydi. leftToRight() va rightToLeft() funksiyalari axborotning qaysi tomonga siljishini aniqlaydi. disp. autoscroll())(; // avtomatik aylantirishni yoqing
void noAutoscroll() Matnni avtomatik aylantirishni o'chiring. disp. noAutoscroll())(; // avtomatik aylantirishni o'chiring
void leftToRight() Sinov chiqish rejimini chapdan o'ngga o'rnatadi. Oldingi belgilarning o'ng tomonida yangi belgilar paydo bo'ladi. leftToRight(); // chapdan o'ngga rejimi
void rightToLeft() Sinov chiqish rejimini o'ngdan chapga o'rnatadi. Oldingi belgilarning chap tomonida yangi belgilar paydo bo'ladi. rightToLeft(); // o'ngdan chapga rejimi
void createChar(son, ma'lumotlar) Maxsus belgi yaratish usuli. Tekshirish moslamasi 5x8 pikselli 8 tagacha belgi (0...7) yaratish imkonini beradi. Belgi tasviri 8 baytlik massiv bilan belgilanadi. Har bir baytning eng kam ahamiyatli 5 biti qatordagi piksellar holatini aniqlaydi. Maxsus belgini chiqarish uchun siz belgilar raqami bilan write() funksiyasidan foydalanishingiz mumkin. // maxsus belgi yaratish
bayt tabassum = (
Mana, rus alifbosini ko'rsatadigan dasturning namunasi. // Rus alifbosi chiqishi
Ramziy Arduino displeyining o'zaro ta'siri loyihaga o'qishning yoqimli elementini qo'shadi. Dunyo bo'ylab ko'plab eng yaxshi loyihalarda sport namoyishlari mavjud. Ushbu LCD displeylar mikrokontrollerdan yoki unga ulangan har qanday sensordan ma'lumotlarni ko'rsatish uchun ishlatiladi. Masalan, Arduino-da ushbu ko'rsatkichni ko'rsatadigan tizimni yaratishingiz mumkin. Ekranda tezlikni ko'rsatadigan o'z spidometringizni loyihalashingiz mumkin. Ushbu Arduino LCD qo'llanmasida siz Arduino LCD i2c ramzi interfeysini topasiz. Siz ushbu matndagi ma'lumotlardan o'zingizning LCD monitor loyihalaringizni yaratish uchun foydalanishingiz mumkin. Arduino uchun displey loyihalar natijalarini ko'rsatish uchun ishlatilishi mumkin bo'lgan eng oddiy qurilmalardan biridir. Biroq, ushbu qurilmaning ikki xil turi mavjud: grafik va xarakter. Ushbu maqola shaxsiy ekrandan foydalanadi, chunki u eng oson ishlaydi. Bundan tashqari, ekran o'lchamiga qarab, turli xil turlari mavjud: Ular turli xil ranglarda ham mavjud: Biroq, yashil va ko'k ekranlar eng keng tarqalgan. Boshqa ranglar kam uchraydi. Ushbu qo'llanmada ko'k 20x4 belgisi bo'lgan Arduino displeyi ishlatiladi. Mikroprotsessor to'rtta ma'lumot liniyasi orqali ekran bilan o'zaro ta'sir qiladi. Displey bilan o'zaro aloqada bo'lish va unda biz xohlagan narsani ko'rsatish uchun biz mikrokontrollerdagi raqamli pinlardan foydalanamiz. Mikrokontrollerdan monitordagi 15 ga 5V quvvat berilganda LCD displeydagi orqa yorug'lik faollashadi va tuproqli pin 16. Shuningdek, sensorli displeyning kontrastini sozlash uchun Arduino 10K potansiyometrga muhtoj. Arduino uchun displey yaratish uchun sizga quyidagi uskunalar kerak bo'ladi: Hitachi-ga mos keluvchi LCD monitorlar; ularni ikkita rejimda boshqarish mumkin: 4-bit yoki 8-bit. 4-bitli rejim Arduino LCD-dan yettita kiritish/chiqarish pinini, 8-bitli rejim esa 11 pinni talab qiladi. Ekranda matnni ko'rsatish uchun siz 4-bitli rejimda hamma narsani qilishingiz mumkin, shuning uchun misol 4-bitli rejimda 2x16 LCD displeyni qanday boshqarishni ko'rsatadi. Endi biz Arduino ssd1306 orqali displeyda biror narsani ko'rsatishga harakat qilishimiz mumkin. Buni amalga oshirishdan oldin Arduino kutubxonasini havoladan yuklab olishingiz kerak - . Keyin yuklab olish faylidan "LiquidCrystal" jildini chiqarib olishingiz kerak. Va keyin "LiquidCrystal" jildidan nusxa ko'chiring va mikroprotsessor katalogiga joylashtiring, yakuniy natijalar katalogining namunasi quyidagicha ko'rinishi kerak: arduino-1.0.5librariesLiquidCrystal. Keyin rivojlanish muhitini oching va quyidagi manzilga o'ting: Fayl -> Misollar -> LiquidCrystal -> HelloWorld Kodni mikrokontrollerga yuklang. Foydalanuvchi quyidagi ma'lumotlarni ko'radi: E'tibor bering, agar siz 16x2 ekrandan foydalansangiz, lcd.begin(20,4) ni lcd.begin(16,2) ga tahrirlang. Birinchi qadam 16 pinli sarlavhalarni Arduino displeyiga lehimlashdir. Keyin Arduino-ga ulanish uchun 16 pinli sarlavhadan foydalanishingiz mumkin yoki shunchaki ayoldan ayolga sarlavhadan foydalanishingiz mumkin. Agar siz mikrokontrollerga birinchi marta ulanayotgan bo'lsangiz, eng oson yo'li - non panelidan foydalanish. LCD bilan ishlashdan oldin qilishingiz kerak bo'lgan birinchi narsa uni sinab ko'rishdir. Buning uchun yuqoridagi diagrammada ko'rsatilganidek, ulanishlarni amalga oshiring. Ushbu pinlar LCD orqa yorug'likni yoqish uchun ishlatiladi. Keyinchalik, qurilma uchun mantiqiy operatsiyalarni sozlashingiz kerak. 10K potansiyometrni oling va birinchi terminalni Arduinoning 5V chiqishiga, ikkinchisini 3-pinga va uchinchi terminalni GND chiqishiga ulang. Keyin mikroprotsessorni yoqing. LCD displeydagi orqa yorug'lik yoqilganligini sezasiz. Bundan tashqari, potansiyometrdagi tugmani aylantirganingizda, LCD displeydagi belgilar bloklari yorqin/xira bo'lib qoladi. Men nima haqida gapirayotganimni bilish uchun quyidagi rasmga qarang. Agar sizning monitoringiz quyidagi rasmda ko'rsatilgan narsani ko'rsatsa, ekraningiz to'g'ri sozlangan! Agar bunga erisha olmasangiz, ulanishlaringizni va potansiyometrni tekshiring. Endi biz ma'lumotlar liniyalarini va ekran bilan ishlaydigan boshqa pinlarni ulashimiz kerak. Quyidagi ulanish sxemasiga qarang. LCD displey uchun boshqaruv simlarini ulashdan boshlaylik. Monitorning 5-pinini (RW) Arduino-ning GND piniga ulang. Ushbu pin ishlatilmaydi va o'qish/yozish uchun ishlatiladi. Keyin qalqonning 4-pinini (RS) Arduino-ning 7-raqamli chiqishiga ulang. RS PIN LCD displeyda biz ma'lumot yoki buyruq yuborayotganimizni ko'rsatish uchun ishlatiladi (kursor o'rnini o'zgartirish uchun). Keyinchalik, LCD displeyning 6-pinini (EN) Arduino 8-ning raqamli chiqishiga ulang. EN qurilmadagi pinli rozetka bo'lib, monitorga ma'lumotlarni o'qishga tayyorligini bildirish uchun ishlatiladi. Keyin qurilmadagi to'rtta ma'lumot pinini ulashimiz kerak. Qalqonning 14-pinini (DB7) Arduino-ning 12-raqamli piniga ulang. Keyin monitorning 13-pinini (DB6) Arduino-ning 11-raqamli chiqishiga ulang. Keyin monitor pin 12 (DB5) raqamli pin 10, keyin LCD PIN №11 (DB4) raqamli pin 9. Mana, siz LCD-ni Arduino-ga ulashni tugatdingiz. Quyida ko'rsatilganidek, LCD displeydagi boshqaruv pinlari va ma'lumotlar pinlari o'rtasida to'rtta ulanmagan pin borligini sezasiz. Sensorli qurilma uchun kodni qaytadan kiritib ko‘ring. Asosan, LCD displeyda matnni boshqarish uchun uchta asosiy funktsiya mavjud: Hammasi shu, endi siz olingan qurilmani loyihalaringizga qo'shishingiz mumkin.Xususiyatlari
Ulanish
№:
Displey:
Arduino:
Maqsad:
16
K(LED-)
GND
LED yoritgichining katodi (minus).
15
A(LED+)
5V
LED yoritgichining anod (ortiqcha).
14...7
D7...D0(DB7...DB0)
Har qanday
8 qatordan iborat ma'lumotlar avtobusi. Yuqoridagi diagrammada faqat katta 4 ta chiziq ishlatiladi, chunki bu displey tezligiga ta'sir qilmaydi.
6
E
Har qanday
Signalni yoqish.
5
RW
GND
Ma'lumot uzatish yo'nalishini tanlash (O'qish / yozish): "1" - displeydan o'qish / "0" - displeyga yozish. PIN GND ga ulangan, chunki Ma'lumotlar faqat displeyga yoziladi.
4
R.S.
Har qanday
Registr Axborot oluvchini tanlash: “1” – ma’lumotlar reestri / “0” – ko‘rsatma registri.
3
V0(VEE)
Displey kontrastini sozlash: 0 ... +5 V DC.
2
VDD(VCC)
5V
Displey mantiqiy quvvati: +5 VDC.
1
VSS(GND)
GND
Umumiy quvvat manbai (tuproq).
Oziqlanish
Displey haqida batafsil
Ko'rsatkich turi
Displey formati, belgilar x satr
Olchamlari, mm
Ko'rinadigan maydonning o'lchamlari, mm
Hujjatlarga havola, PDF formati
WH0802A1
8 x 2
58 x 32
38 x 16
WH1202A
12 x 2
55,7 x 32
46 x 14,5
WH1601A
16 x 1
80 x 36
66 x 16
WH1601B
16 x 1
85 x 28
66 x 16
WH1601L
16 x 1
122 x 33
99 x 13
WH1602A
16 x 2
84 x 44
66 x 16
WH1602B
16 x 2
80 x 36
66 x 16
WH1602C
16 x 2
80 x 36
66 x 16
WH1602D
16 x 2
85 x 30
66 x 16
WH1602J
16 x 2
80 x 36
66 x 16
WH1602L1
16 x 2
122 x 44
99 x 24
WH1602M
16 x 2
85 x 32,6
66 x 16
WH1602O
16 x 2
85 x 25,2
66 x 16
WH1602P
16 x 2
85 x 25,2
66 x 16
WH1602S
16 x 2
59 x 29,3
52 x 15
WH1602T
16 x 2
65,4 x 28,2
54,8 x 19
WH1602W
16 x 2
80 x 36
66 x 16
WH1602V2
16 x 2
66,7 x 23,3
61 x 15,9
WH1604A
16 x 4
87 x 60
62 x 26
WH1604B
16 x 4
70,6 x 60
60 x 32,6
WH2002A
20 x 2
116 x 37
85 x 18,6
WH2002D
20 x 2
89 x 21,5
75 x 15
WH2002L
20 x 2
180 x 40
149 x 23
WH2002M
20 x 2
146 x 43
123 x 23
WH2004A
20 x 4
98 x 60
77 x 25,2
WH2004B
20 x 4
98 x 60
77 x 25,2
WH2004D
20 x 4
77 x 47
60 x 22
WH2004G
20 x 4
87 x 58
74,4 x 24,8
WH2004H
20 x 4
87 x 58
74,4 x 24,8
WH2004L
20 x 4
146 x 62,5
123,5 x 43
WH2402A
24 x 2
118 x 36
94,5 x 16
WH4002A
40 x 2
182 x 33,5
154,4 x 16,5
WH4004A
40 x 4
190 x 54
147 x 29,5
Pin raqami
Signal
I - kirish O - chiqish
Signal maqsadi
1
Vs
-
Yer (umumiy)
2
Vdd
-
Quvvat manbai +5V
3
Vo
-
Displey kontrastini boshqarish. Voltaj bo'luvchining o'rta chiqishini ulash uchun kirish + 5 V. 10-20 kOhm qarshilikka ega trimmer qarshiligidan foydalanishingiz mumkin.
4
R.S.
I
Registrni tanlash: 0 – buyruq registri; 1 - ma'lumotlar registri. Signalning past darajasi ma'lumotlar shinasida buyruq yaratilganligini bildiradi, yuqori daraja esa ma'lumotlar shinasida buyruq yaratilganligini bildiradi.
5
R/W
I
Ma'lumot uzatish yo'nalishi:
6
E
I
Avtobusning ishlashi strobi (salbiy chetida).
7
DB0
I/U
Sakkiz bitli rejimning past tartibli bitlari. To'rt bitli interfeys bilan ishlatilmaydi.
8
DB1
I/U
9
DB2
I/U
10
DB3
I/U
11
DB4
I/U
Sakkiz bitli rejimning eng muhim bitlari yoki to'rt bitli interfeysning ma'lumotlar bitlari.
12
DB5
I/U
13
DB6
I/U
14
DB7
I/U
15
A
-
Orqa yorug'lik quvvati anod (+).
16
K
-
Orqa yorug'lik quvvati katodi (-). Oqim cheklangan bo'lishi kerak.
#o'z ichiga oladi
char ma'lumotlari;
bekor o'rnatish()
{
Serial.begin(9600); // ketma-ket portni ishga tushiring
disp.begin(20, 4); //
}
void loop()
{
agar (Serial.available()) ( // ma'lumotlar mavjud bo'lsa
ma'lumotlar = Serial.read(); // belgini o'qing
if((ma'lumotlar != 0xd) && (ma'lumotlar != 0xa)) ( // qator tasmasi
disp.write(ma'lumotlar); // belgisini ekranda ko'rsating
}
}
}
chop etish (char d)
Agar char argumenti belgilar kodini chiqarsa
disp.print(d); // S belgisini chop etadi
disp.print('S'); // S belgisini chop etadi
chop etish (int d)
Agar argument butun son turi bo'lsa, u holda raqamning o'nli ko'rinishi bilan qatorni chop etadi
disp.print(d); // "83" qatorini chop etadi
disp.print(83); // "83" qatorini chop etadi
chop etish (suzuvchi)
Haqiqiy tiplar ASCII belgilar, ikki kasrli belgilar sifatida chiqariladi
disp.print(d); // "7.65" qatorini chop etadi
disp.print(7.65432); // satrni chop etadi “7.65”
chop etish (*str)
Agar argument satrga ko'rsatgich bo'lsa, u holda matn satri chop etiladi.
disp.print (“Harflar”); // "Harflar" qatorini chop etadi
disp.print(harflar); // 65, 66, 67 kodlari bilan 3 ta belgidan iborat qatorni chiqaradi
chop etish (int d, DEC)
ASCII qatorni chop etadi - sonning o'nli ko'rinishi
disp.print(d, DEC); // "83" qatorini chiqaring
chop etish (int d, HEX)
ASCII qatorini chiqaradi - sonning o'n oltilik ko'rinishi
disp.print(d, HEX); // "53" qatorini chiqaring
chop etish (int d, OCT)
ASCII qatorini chop etadi - sonning sakkiztalik ko'rinishi
disp.print(d, OCT); // "123" qatorini chiqaring
chop etish (int d, BIN)
ASCII qatorini chiqaradi - sonning ikkilik ko'rinishi
disp.print(d, BIN); // "01010011" qatorini chiqaring
chop etish (float d, N)
Haqiqiy sonlar uchun N parametri kasrdan keyingi raqamlar sonini belgilaydi.
disp.print(7.65432, 2); // "7.65" qatorini chop etadi
disp.print(7.65432, 4); // "7.6543" qatorini chiqaradi
#o'z ichiga oladi
LiquidCrystal disp(6, 7, 2, 3, 4, 5); // ob'ekt yaratish
bekor o'rnatish()
{
disp.begin(20, 4); // displeyni 20 ta belgidan iborat 4 qatorni ishga tushiring
disp.print("Sinov qatori");
}
void loop()
{ }
#o'z ichiga oladi
LiquidCrystal disp(6, 7, 2, 3, 4, 5); // ob'ekt yaratish
B00000000,
B00010001,
B00000000,
B00000000,
B00010001,
B00001110,
B00000000,
B00000000
};
bekor o'rnatish()
{
disp.createChar(0, tabassum); // belgi yarating
disp.begin(20, 4); // displeyni 20 ta belgidan iborat 4 qatorni ishga tushiring
disp.print("Tabassum");
disp.write(bayt(0)); // belgini ko'rsatish
}
void loop()
{ }
#o'z ichiga oladi
LiquidCrystalRus disp(6, 7, 2, 3, 4, 5); // ob'ekt yaratish
bekor o'rnatish()
{
disp.begin(20, 4); // displeyni 20 ta belgidan iborat 4 qatorni ishga tushiring
disp.print("abvgdeezhziyklmnoprst");
disp.print("ABVGDEYOZHIYKLMNOPRST");
disp.print("uffhhhhhhhhhhhhhhhhhhhhhh");
disp.print("UFHTSCHSHSHSHYYYYYYYYYYYYYYYYYYYYYYYYY");
}
void loop()
{ }
Kerakli komponentlar
Dasturlash
Qurilish jarayoni
Ishga tushirish va sinovdan o'tkazish