Mundarija:

Yagona LCD chizig'ini aylantiring: 4 qadam (rasmlar bilan)
Yagona LCD chizig'ini aylantiring: 4 qadam (rasmlar bilan)

Video: Yagona LCD chizig'ini aylantiring: 4 qadam (rasmlar bilan)

Video: Yagona LCD chizig'ini aylantiring: 4 qadam (rasmlar bilan)
Video: UZOQ KUTILDIM??? XHDATA D-109 radio qabul qilgichmi yoki TECSUN PL-320mi? 2024, Noyabr
Anonim
Image
Image

Suyuq kristal kutubxonasi ikkita foydali funktsiyaga ega: scrollDisplayLeft () va scrollDisplayRight (). Bu funktsiyalar butun ekranni aylantiradi. Ya'ni, ular ikkala satrni ham 1602 LCD displeyda va to'rtta satrni 2004 yildagi LCD displeyda aylantiradilar. Bizga tez -tez kerak bo'ladigan narsa - bu butun displeyni aylantirish emas, balki bitta satrni bu displeylarga o'tkazish.

Bu ko'rsatma ikkita qo'shimcha funktsiyani taqdim etadi: scrollInFromRight (matnni ko'rsatish uchun satr, o'girish uchun satr) va scrollInFromLeft (matnni ko'rsatish uchun satr, aylantiriladigan satr). LCD displeyda chiziqlarni siljitadigan bu ikkita funktsiya, ikkita funksiya bilan birlashtirilgan: scrollLineRight (matnni ko'rsatish uchun satr, o'girish uchun satr) va scrollLineLeft (matnni ko'rsatish uchun satr, o'girish uchun satr). chiziqlarni ekrandan siljitish funktsiyalari bizga LCD displeyda matnni qanday ko'rsatish yoki olib tashlashni boshqarishning bir qancha kuchli usullarini beradi.

1 -qadam: Nima kerak

Ulash
Ulash

- 1602 yoki 2004 yildagi mustaqil LCD displey yoki LCD ekran

- 2004 yildagi LCD displeydan foydalanish bo'yicha quyidagi izohga qarang

- Arduino UNO R3 yoki klon

- Arduino -ni kompyuterga ulash uchun USB kabeli

- Yarim o'lchamli, 400 ta taqish punkti, non paneli

- Arduino IDE

- eksperimental platforma (ixtiyoriy, lekin foydali)

1602 yoki 2004 yildagi LCD displey talab qilinadi [agar 2004 yil ishlatilgan bo'lsa, lcd.begin () funktsiyasini o'zgartirib, o'ngdan o'ngga siljitish muammosiz ishlaydi, siz hozirda 20 ta belgidan iborat 4 chiziqdan foydalanasiz. ko'rsatish. [2004 -yilgi displey yordamida chapga o'tish uchun, crollInFromLeft () funktsiyasining kodini qayta yozish kerak]. LCD -dan tashqari sizga Arduino -ni kompyuterga ulash uchun Arduino UNO yoki klon, Arduino IDE va USB kabeli kerak bo'ladi.

Bu erda ko'rsatilgan mustaqil LCD o'rniga LCD ekran ishlatilishi mumkin. Agar shunday bo'lsa, quyida eskizda LCD displeyi uchun ko'rsatmalarni o'zgartirish kerak bo'ladi.

- 1602 -sonli mustaqil LCD displey uchun men eskizlarimda quyidagi pinli topshiriqlardan foydalandim:

// LiquidCrystal (rs, yoqish, d4, d5, d6, d7)

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

va LiquidCrystal.h Suyuq Kristal kutubxonasini o'z ichiga oladi.

- LCD ekran uchun men chizmalarimda quyidagi pinli topshiriqlardan foydalanaman, shuningdek, LiquidCrystal.h Suyuq Kristal kutubxonasini ham o'z ichiga olaman.

// LiquidCrystal (rs, yoqish, d4, d5, d6, d7)

LiquidCrystal lcd (8, 13, 9, 4, 5, 6, 7);

Har qanday yo'nalish bu erda kodni ishlaydi, ya'ni LCD ekran yoki mustaqil LCD. Ko'rsatmada 1602 mustaqil LCD displey ishlatilgan, lekin ta'kidlanganidek, agar har xil pim topshiriqlari hisobga olinsa, 1602 ekranini ham ishlatish mumkin.

Men "eksperimental platforma" dan foydalanib, Arduino UNO-ni yarim o'lchamli, 400 ta bog'lash punkti, non taxtasiga ulashim mumkin edi. ("Arduino UNO R3 uchun eksperimental platforma, uni ishlatishga qanday tayyorlash kerak" haqidagi oldingi ko'rsatmaga qarang). Biroq, eksperimental platforma kerak emas, lekin men uchun bu LCDni UNOga ulashni ancha oson va tezroq qiladi.

LCDni UNO ga ulash uchun ishlatgan topshiriqlarni yuqorida ko'rish mumkin.

2 -qadam: ulanish

LCD displeyga ulangan, so'ngra ulash simlari taxtadan Arduino -dagi mos keladigan pinlarga ulanadi (agar men ishlatgan ulanishlar haqida savollaringiz bo'lsa, 2 -bosqichga qarang).

Men bu loyiha uchun qalqonni emas, balki mustaqil LCD -ni afzal ko'rdim, chunki bu men uchun ko'proq qoniqarli edi va qaysi pinlar borligini osongina ko'rishimga imkon berdi. Bu, shuningdek, tornavida bilan sozlanishi kerak bo'lgan qalqonning potentsiometrini emas, balki tugmachali potentsiometrni ishlatishga imkon beradi.

Mustaqil LCD displeyi alohida 10k ohmlik potansiyometrdan foydalanishni talab qiladi. Yuqorida ta'kidlab o'tilganidek, men o'chirgichi uchinchi LCD piniga ulangan tugmachadan foydalandim (o'ngdan sanoqli LCD pinlari sizga qaragan holda). Potensiometr LCD displey kontrastini boshqarish uchun ishlatiladi. Ulanishlar 1602 va 2004 yillar uchun bir xil. Biroq, LCD displeyimiz 16 dan o'zgarganligini ko'rsatish uchun lcd.begin (16, 2) ifodasini lcd.begin (20, 4) ga o'zgartirish kerak. ikki qatorli belgi 20 belgidan to'rt qatorli belgiga.

Qo'shilgan fotosuratlarga qaraganda, men ishlatgan ulanish, shu jumladan eksperimental platforma va 10k potentsiometr ko'rsatilgan.

3 -qadam: eskiz

Eskiz
Eskiz
Eskiz
Eskiz
Eskiz
Eskiz

Arduino IDE -ga biriktirilgan eskizni kiriting. Shuni yodda tutingki, ko'rsatma beriladigan sayt ko'pincha katta va kichikroq belgilarni va ular orasidagi matnni olib tashlaydi. Shunday qilib, ishonch hosil qiling va matnni kiriting, #include LiquidCrystal.h va LiquidCrystal.h so'zlarini ramzlardan katta va kichikroq qilib qo'ying.

// Belgilarni LCD ekranga o'tkazish uchun eskiz

#include // Matndagi bu erda nima kerakligi haqida eslatmani ko'ring, ya'ni LiquidCrystal.h ichida joylashgan.

// belgidan katta va kichik

// Bu sayt ko'pincha katta va kichikroq belgilarni va ular orasidagi matnni o'chiradi

// LiquidCrystal (rs, yoqish, d4, d5, d6, d7)

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

// LCD -ni LiquidCrystal obyekti deb e'lon qiling

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // Shiftlar orasidagi kechikish

void scrollInFromRight (int line, char str1 ) {

// R. Jordan Kreindler tomonidan yozilgan, 2016 yil iyun

i = strlen (str1);

uchun (j = 16; j> = 0; j--) {

lcd.setCursor (0, qator);

uchun (k = 0; k <= 15; k ++) {

lcd.print (""); // Chiziqni tozalash

}

lcd.setCursor (j, chiziq);

lcd.print (str1);

kechikish (delayTime2);

}

}

void scrollInFromLeft (int line, char str1 ) {

// R. Jordan Kreindler tomonidan yozilgan, 2016 yil iyun

i = 40 - strlen (str1);

chiziq = chiziq - 1;

uchun (j = i; j <= i+16; j ++) {

uchun (k = 0; k <= 15; k ++) {

lcd.print (""); // Chiziqni tozalash

}

lcd.setCursor (j, chiziq);

lcd.print (str1);

kechikish (delayTime2);

}

}

bo'sh o'rnatish () {

Serial.begin (9600);

Serial.println ("Sinov boshlanmoqda …");

lcd.begin (16, 2);

lcd.clear ();

lcd.print ("Faqat sinov");

}

void loop () {

lcd.clear ();

scrollInFromRight (0, "O'ngdan 1 -qator");

scrollInFromRight (1, "O'ngdan 2 -qator");

lcd.clear ();

scrollInFromLeft (0, "Chapdan 1 -qator");

scrollInFromLeft (1, "Chapdan 2 -qator");

lcd.clear ();

scrollInFromRight (0, "O'ngdan 1 -qator");

scrollInFromLeft (1, "Chapdan 2 -qator");

lcd.clear ();

}

Ikkita funktsiyani bajaring: scrollInFromRight (matnni ko'rsatish uchun satr, o'girish uchun satr) va scrollInFromLeft (matnni ko'rsatish uchun satr, o'girish kerak bo'lgan satr) LCD ekranga o'tadigan chiziqlarni boshqarish uchun eskizga ko'chirilishi mumkin. Bu funktsiyalar yangi matnni ekranga ko'chirishning ajoyib usulini beradi.

Ko'rsatma "Ikkita LCD chizig'ini chapga yoki o'ngga siljiting, qanday qilish kerak" eskizidagi ikkita funktsiyani birlashtirganda, to'rt funktsiyali matnni LCD displeyga siljitish va o'chirishning ajoyib usullari taqdim etiladi. Bu funktsiyalar sizga matnni birma -bir yo'naltirishga imkon beradi va scrollDisplayLeft () va scrollDisplayRight () funktsiyalari kabi butun displeyni aylantirishni talab qilmaydi.

Bu aylantirish qobiliyati bizga displey odatda ko'rsatadigan uzunroq chiziqlarni taqdim etishimizga imkon beradi. Ya'ni, 1602 displeyi uchun biz har bir satrda faqat 16 ta belgi bilan cheklanmaganmiz (garchi bir vaqtning o'zida atigi 16 ta ko'rsatiladi) va 2004 yilda biz har bir satrda 20 ta belgi bilan cheklanmaganmiz.

Bir chetga surib, sizning ehtiyojlaringizga qarab aylantirishlar orasidagi ko'rish vaqtini sozlashingiz mumkin.

4 -qadam: Keyin

Hammasi shu. Bu funksiyalarni va oldingi ko'rsatmalarni ikkitasini LCD yordamida va matnni ko'rsatadigan har qanday eskizga qo'shish mumkin. Ta'kidlanganidek, uzunroq chiziqlardan foydalanish - bu aylantirish yordamida mumkin bo'lgan aniq foyda.

Agar siz biron -bir savolingiz yoki qo'shimcha ma'lumot olish uchun men bilan bog'lanmoqchi bo'lsangiz yoki taqdim etilgan sohada o'z bilimimni kengaytirmoqchi bo'lsangiz, menga [email protected] elektron manzili orqali bog'lanishingiz mumkin. (iltimos, men bilan bog'lanish uchun ikkinchi "i" ni "e" bilan almashtiring.

Tavsiya: