Har bir radio havaskor, oddiy oʻz-oʻzidan ishlagandan soʻng, datchiklar va tugmalar yordamida ulugʻvor narsalarni yaratish maqsadiga erishadi. Axir, port monitoriga qaraganda displeyda ma'lumotlarni ko'rsatish ancha qiziqroq. Ammo keyin savol tug'iladi: qaysi displeyni tanlash kerak? Va umuman, uni qanday ulash kerak, ulanish uchun nima kerak? Bu savollarga javoblar ushbu maqolada muhokama qilinadi.
LCD 1602
Displeylar orasida koʻplab variantlar orasida men HD4478 kontrolleriga asoslangan LCD1602 displeyni ajratib koʻrsatmoqchiman. Ushbu displey ikkita rangda mavjud: ko'k fonda oq harflar, sariq fonda qora harflar. LCD 1602-ni Arduino-ga ulash ham hech qanday muammo tug'dirmaydi, chunki o'rnatilgan kutubxona mavjud va siz qo'shimcha hech narsa yuklab olishingiz shart emas. Displeylar nafaqat narxi, balki hajmi bo'yicha ham farqlanadi. Ko'pincha radio havaskorlari 16 dan foydalanadilarx 2, ya'ni 16 belgidan iborat 2 qator. Ammo 20 x 4 ham bor, bu erda 20 ta belgidan iborat 4 qator mavjud. O'lchovlar va rang lcd 1602 displeyini Ardunoga ulashda hech qanday rol o'ynamaydi, ular xuddi shu tarzda ulanadi. Ko'rish burchagi 35 daraja, displeyning javob vaqti 250 ms. -20 dan 70 darajagacha bo'lgan haroratda ishlashi mumkin. Ishlayotganda u ekran uchun 4 mA va orqa yorug'lik uchun 120 mA sarflaydi.
U qayerda ishlatiladi?
Bu displey nafaqat radio havaskorlari, balki yirik ishlab chiqaruvchilar orasida ham mashhurlikka ega. Misol uchun, printerlar, qahva mashinalari ham LCD1602 dan foydalanadi. Bu uning arzonligi bilan bog'liq, bu displey Xitoy saytlarida 200-300 rublni tashkil qiladi. U yerda xarid qilish arziydi, chunki bizning do‘konlarimizda bu displey uchun chegaralar juda yuqori.
Arduino-ga ulaning
LCD 1602-ni Arduino Nano va Uno-ga ulash hech qanday farq qilmaydi. Displey bilan ikkita rejimda ishlashingiz mumkin: 4 bit va 8. 8 bitli displey bilan ishlaganda ham pastki, ham yuqori bitlar, 4 bitli bilan esa faqat pastroqlar ishlatiladi. 8-bit bilan ishlashda alohida nuqta yo'q, chunki ulanish uchun yana 4 ta kontakt qo'shiladi, bu tavsiya etilmaydi, chunki tezlik yuqori bo'lmaydi, displeyni yangilash chegarasi sekundiga 10 marta. Umuman olganda, lcd 1602-ni Arduino-ga ulash uchun juda ko'p simlar qo'llaniladi, bu ba'zi noqulayliklar tug'diradi, ammo maxsus qalqonlar mavjud, ammo keyinroq bu haqda ko'proq ma'lumot beradi. Suratda displeyning Arduino Uno-ga ulanishi ko'rsatilgan:
Kod misoli:
shu jumladan //LiquidCrystal lcd (7, 6, 5, 4, 3, 2) uchun kerakli kutubxonani qo'shing; // (RS, E, DB4, DB5, DB6, DB7) bekor o'rnatish(){ lcd.begin(16, 2); // Ekran o'lchamini o'rnatish lcd.setCursor(0, 0); // Kursorni 1-qator boshiga qo'ying lcd.print("Salom, dunyo!"); // Matnni ko'rsatish lcd.setCursor(0, 1); // Kursorni 2-qator boshiga qo'ying lcd.print("fb.ru"); // Chiqish matni } void loop(){ }
Kod nima qiladi? Avvalo, displey bilan ishlash uchun kutubxona ulangan. Yuqorida aytib o'tilganidek, ushbu kutubxona allaqachon Arduino IDE-ga kiritilgan va uni qo'shimcha ravishda yuklab olishingiz va o'rnatishingiz shart emas. Keyinchalik, pinlarga ulangan kontaktlar aniqlanadi: mos ravishda RS, E, DB4, DB5, DB6, DB7. Keyin ekran o'lchami o'rnatiladi. Biz 16 ta belgi va 2 qatorli versiya bilan ishlayotganimiz sababli, biz bunday qiymatlarni yozamiz. Biz kursorni birinchi qatorning boshiga o'rnatamiz va birinchi matnimizni Hello World ko'rsatamiz. Keyin kursorni ikkinchi qatorga qo'ying va sayt nomini ko'rsating. Ana xolos! LCD 1602-ni Arduino Uno-ga ulash ko'rib chiqildi.
I2C nima va u nima uchun kerak?
Yuqorida aytib o'tilganidek, displeyni ulash uchun juda ko'p pin kerak bo'ladi. Misol uchun, bir nechta sensorlar va LCD displey bilan ishlashda 1602 kontaktlari etarli bo'lmasligi mumkin. Ko'pincha radio havaskorlari Uno yoki Nano versiyalaridan foydalanadilar, bu erda kontaktlar ko'p emas. Keyin odamlar maxsus qalqonlar bilan chiqdilar. Masalan, I2C. Bu displeyni atigi 4 ta pin bilan ulash imkonini beradi. Bu ikki baravar kam. I2C moduli alohida sotiladi, bu erda siz uni o'zingiz lehimlashingiz kerak va allaqachon lehimlangan. LCD displey 1602.
I2C moduli bilan ulanish
LCD 1602-ni Arduino Nano-ga I2C bilan ulash kam joy egallaydi, faqat 4 pin: yer, quvvat va 2 ma'lumot chiqishi. Biz quvvat va tuproqni mos ravishda Arduino-da 5V va GND ga ulaymiz. Qolgan ikkita kontakt: SCL va SDA har qanday analog pinlarga ulangan. Suratda siz lcd 1602 ni I2C moduli bilan arduinoga ulash misolini ko'rishingiz mumkin:
Dastur kodi
Agar modulsiz displey bilan ishlash uchun faqat bitta kutubxonadan foydalanish kerak boʻlsa, modul bilan ishlash uchun ikkita kutubxona kerak boʻladi. Ulardan biri allaqachon Arduino IDE - Wire-da. Boshqa kutubxona, LiquidCrystal I2C, alohida yuklab olinishi va o'rnatilishi kerak. Kutubxonani Arduino-ga o'rnatish uchun yuklab olingan arxiv tarkibini Libraries ildiz papkasiga yuklash kerak. I2C yordamida kod misoli:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Displeyni sozlash void setup() { lcd.init(); lcd.backlight();// Displey yoritgichini yoqing lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Kursorni ikkinchi qatorga va null belgiga qo'ying. lcd.setCursor(0, 1); // Arduino ishga tushirilgandan keyin necha soniya bosib chiqaring lcd.print(millis()/1000); }
Koʻrib turganingizdek, kod deyarli bir xil.
Oʻz belgimni qanday qoʻshishim mumkin?
Bu displeylar bilan bogʻliq muammo shundaki, yoʻqkirill alifbosi va belgilarni qo'llab-quvvatlash. Misol uchun, siz uni aks ettirishi uchun displeyga ba'zi belgilarni yuklashingiz kerak. Buning uchun displey sizning belgilaringizdan 7 tagacha yaratish imkonini beradi. Jadvalni taqdim eting:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
Agar 0 bo'lsa - u erda hech narsa yo'q, agar 1 bo'lsa - bu soyali maydon. Yuqoridagi misolda siz "tabassumli tabassum" xarakterining yaratilishini ko'rishingiz mumkin. Arduino-da misol dasturidan foydalanib, u quyidagicha ko'rinadi:
include include // Kerakli kutubxonani qo'shing // Tabassum belgisi bit maskasi bayt tabassum[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010,}; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) bekor o'rnatish(){ lcd.begin(16, 2); // Ekran o'lchamini o'rnatish lcd.createChar(1, tabassum); // 1-sonli belgi yaratish lcd.setCursor(0, 0); // Kursorni 1-qator boshiga qo'ying lcd.print("\1"); // Smaylni ko'rsatish (1-belgi) - "\1" } void loop(){ }
Koʻrib turganingizdek, yaratilganbitmask jadval bilan bir xil. Yaratilgandan so'ng, u displeyga o'zgaruvchi sifatida chiqarilishi mumkin. Xotirada faqat 7 ta belgi saqlanishi mumkinligini unutmang. Aslida, bu etarli. Masalan, daraja belgisini koʻrsatmoqchi boʻlsangiz.
Displey ishlamasligi mumkin boʻlgan muammolar
Displey ishlamaydigan holatlar mavjud. Masalan, u yoqiladi, lekin belgilarni ko'rsatmaydi. Yoki u umuman yoqilmaydi. Birinchidan, kontaktlarni to'g'ri ulaganingizni tekshiring. Agar siz ilgari lcd 1202 ni Arduino-ga I2C-siz ulagan bo'lsangiz, u holda simlarga chigallashib qolish juda oson, bu esa displeyning noto'g'ri ishlashiga olib kelishi mumkin. Bundan tashqari, displey kontrasti oshirilganligiga ishonch hosil qilishingiz kerak, chunki minimal kontrastda LCD 1602 yoqilgan yoki yo'qligi hatto ko'rinmaydi. Agar bu yordam bermasa, muammo kontaktlarning lehimlanishida bo'lishi mumkin, bu I2C modulidan foydalanganda. Bundan tashqari, displey ishlamasligining umumiy sababi I2C manzilining noto'g'ri sozlanishi. Haqiqat shundaki, ko'plab ishlab chiqaruvchilar mavjud va ular boshqa manzilni o'rnatishi mumkin, siz uni bu erda tuzatishingiz kerak:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Qavs ichida siz ikkita qiymatni ko'rishingiz mumkin, 0x27 va 16, 2 (16, 2 - displey o'lchami, 0x27 - faqat I2C manzili). Ushbu qiymatlar o'rniga siz 0x37 yoki 0x3F ni qo'yishga harakat qilishingiz mumkin. Xo'sh, yana bir sabab shunchaki noto'g'ri LCD 1602. Arduino uchun deyarli hamma narsa Xitoyda ishlab chiqarilganligini hisobga olsak, sotib olinganiga 100% ishonch hosil qila olmaysiz.mahsulot nuqsonli emas.
LCD 1602 afzalliklari va kamchiliklari
Keling, LCD 1602ning ijobiy va salbiy tomonlarini koʻrib chiqaylik.
Pros
- Narxi. Ushbu modulni Xitoy do'konlarida juda hamyonbop narxda xarid qilish mumkin. Narxi 200-300 rubl. Ba'zan hatto I2C moduli bilan ham sotiladi.
- Ulanish oson. Ehtimol, bugungi kunda hech kim LCD 1602 ni I2C holda ulamaydi. Va bu modul bilan ulanish faqat 4 pinni oladi, simlarning "torlari" bo'lmaydi.
- Dasturlash. Tayyor kutubxonalar tufayli ushbu modul bilan ishlash oson, barcha funktsiyalar allaqachon ro'yxatdan o'tgan. Agar xarakteringizni qo'shish kerak bo'lsa, bu bir necha daqiqa vaqt oladi.
Kasalliklar
Minglab radio havaskorlar foydalanishi davomida katta minuslar aniqlanmagan, faqat nikoh sotib olish holatlari mavjud, chunki asosan xitoycha displey opsiyalaridan foydalaniladi
Ushbu maqola LCD 1602 displeyini Arduino-ga qanday ulashni muhokama qildi, shuningdek, ushbu displey bilan ishlash uchun namuna dasturlarini taqdim etdi. Bu haqiqatan ham o'z toifasidagi eng yaxshilaridan biri, bu nafaqat minglab radio havaskorlari uni o'z loyihalari uchun tanlaydilar!