Orice amator de radio, după niște lucrări simple de bricolaj, ajunge la obiectivul de a construi ceva măreț folosind senzori și butoane. La urma urmei, este mult mai interesant să afișați date pe afișaj decât pe monitorul portului. Dar atunci apare întrebarea: ce afișaj să alegi? Și, în general, cum să-l conectați, ce este necesar pentru a vă conecta? Răspunsurile la aceste întrebări vor fi discutate în acest articol.
LCD 1602
Dintre numeroasele opțiuni dintre afișaje, aș dori să evidențiez afișajul LCD1602 bazat pe controlerul HD4478. Există acest afișaj în două culori: litere albe pe fond albastru, litere negre pe fond galben. Nici conectarea LCD 1602 la Arduino nu va cauza probleme, deoarece există o bibliotecă încorporată și nu trebuie să descărcați nimic suplimentar. Ecranele diferă nu numai prin preț, ci și prin dimensiune. Adesea radioamatorii folosesc 16x 2, adică 2 rânduri de 16 caractere. Dar există și 20 x 4, unde sunt 4 rânduri de 20 de caractere. Dimensiunile și culoarea nu joacă niciun rol în conectarea display-ului lcd 1602 la Arduno, ele sunt conectate în același mod. Unghiul de vizualizare este de 35 de grade, timpul de răspuns al afișajului este de 250 ms. Poate lucra la temperaturi de la -20 la 70 de grade Celsius. Când lucrează, folosește 4 mA pentru ecran și 120 mA pentru iluminarea de fundal.
Unde este folosit?
Acest display are popularitate nu numai printre amatorii de radio, ci și printre marii producători. De exemplu, imprimantele, aparatele de cafea folosesc și LCD1602. Acest lucru se datorează prețului său scăzut, acest afișaj costă 200-300 de ruble pe site-urile chinezești. Merită să cumpărați acolo, deoarece în magazinele noastre marjele pentru acest afișaj sunt foarte mari.
Conectați-vă la Arduino
Conectarea LCD 1602 la Arduino Nano și Uno nu este diferită. Puteți lucra cu afișajul în două moduri: 4 biți și 8. Când lucrați cu un afișaj pe 8 biți, se folosesc atât biții inferioare, cât și biții mai mari, iar la unul pe 4 biți, doar cei inferiori. Nu are rost să lucrezi cu 8 biți, deoarece se vor adăuga încă 4 contacte pentru a se conecta, ceea ce nu este recomandabil, deoarece viteza nu va fi mai mare, limita de actualizare a afișajului este de 10 ori pe secundă. În general, se folosesc o mulțime de fire pentru a conecta lcd-ul 1602 la Arduino, ceea ce provoacă unele inconveniente, dar există scuturi speciale, dar mai multe despre asta mai târziu. Fotografia arată conexiunea afișajului la Arduino Uno:
Exemplu de cod:
include //Adăugați biblioteca necesară LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Setați dimensiunea ecranului lcd.setCursor(0, 0); // Setați cursorul la începutul liniei 1 lcd.print("Bună, lume!"); // Afișează text lcd setCursor(0, 1); // Setați cursorul la începutul liniei 2 lcd.print("fb.ru"); // Ieșire text } void loop(){ }
Ce face codul? În primul rând, biblioteca pentru lucrul cu afișajul este conectată. După cum am menționat mai sus, această bibliotecă este deja inclusă în Arduino IDE și nu trebuie să o descărcați și să o instalați suplimentar. În continuare, sunt definite contactele care sunt conectate la pini: RS, E, DB4, DB5, DB6, respectiv DB7. Apoi dimensiunea ecranului este setată. Deoarece lucrăm cu o versiune cu 16 caractere și 2 rânduri, scriem astfel de valori. Setăm cursorul la începutul primei rânduri și afișăm primul text Hello World. Apoi, plasați cursorul pe a doua linie și afișați numele site-ului. Asta e tot! Sa luat în considerare conectarea lcd 1602 la Arduino Uno.
Ce este I2C și de ce este necesar?
După cum sa menționat mai sus, conectarea afișajului necesită o mulțime de pini. De exemplu, atunci când lucrați cu mai mulți senzori și un afișaj LCD, 1602 contacte pur și simplu pot să nu fie suficiente. Adesea, radioamatorii folosesc versiunile Uno sau Nano, unde nu există prea multe contacte. Apoi oamenii au venit cu scuturi speciale. De exemplu, I2C. Vă permite să conectați afișajul cu doar 4 pini. Aceasta este de două ori mai puțin. Modulul I2C este vândut atât separat, unde trebuie să îl lipiți singur, cât și deja lipitAfișaj LCD 1602.
Conexiune cu modulul I2C
Conectarea LCD 1602 la Arduino Nano cu I2C ocupă puțin spațiu, doar 4 pini: masă, putere și 2 ieșiri de date. Conectăm alimentarea și împământarea la 5V și respectiv GND pe Arduino. Celel alte două contacte: SCL și SDA sunt conectate la orice pin analogic. În fotografie puteți vedea un exemplu de conectare a lcd 1602 la arduino cu modul I2C:
Cod de program
Dacă a fost necesar să folosiți o singură bibliotecă pentru a lucra cu un afișaj fără modul, atunci sunt necesare două biblioteci pentru a lucra cu un modul. Unul dintre ele este deja în Arduino IDE - Wire. O altă bibliotecă, LiquidCrystal I2C, trebuie descărcată separat și instalată. Pentru a instala biblioteca în Arduino, conținutul arhivei descărcate trebuie să fie încărcat în folderul rădăcină Biblioteci. Exemplu de cod folosind I2C:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Configurați afișajul void setup() { lcd.init(); lcd.backlight();// Porniți iluminarea de fundal a afișajului lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Setați cursorul pe a doua linie și caracterul nul. lcd.setCursor(0, 1); // Imprimă numărul de secunde de când a pornit arduino lcd.print(millis()/1000); }
După cum puteți vedea, codul este aproape același.
Cum îmi adaug propriul simbol?
Problema cu aceste afișaje este că nu existăsuport pentru chirilic și simboluri. De exemplu, trebuie să încărcați un caracter pe afișaj, astfel încât să îl reflecte. Pentru a face acest lucru, afișajul vă permite să creați până la 7 personaje. Prezintă masa:
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 |
Dacă 0 - nu există nimic acolo, dacă 1 - este o zonă umbrită. În exemplul de mai sus, puteți vedea crearea personajului „zâmbet zâmbitor”. Folosind un exemplu de program în Arduino, ar arăta astfel:
include include // Include biblioteca necesară // Simbolul Smile bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Setați dimensiunea ecranului lcd.createChar(1, smile); // Creați caracterul numărul 1 lcd.setCursor(0, 0); // Setați cursorul la începutul liniei 1 lcd.print("\1"); // Afișează zâmbetul (caracterul numărul 1) - „\1” } void loop(){ }
După cum puteți vedea, a fost creatmasca de biți este aceeași cu tabelul. Odată creat, poate fi scos ca variabilă pe afișaj. Rețineți că doar 7 caractere pot fi stocate în memorie. În principiu, acest lucru este suficient. De exemplu, dacă doriți să afișați simbolul gradului.
Probleme în care afișajul ar putea să nu funcționeze
Există momente când afișajul nu funcționează. De exemplu, pornește, dar nu afișează caractere. Sau nu se aprinde deloc. Mai întâi, vezi dacă ai conectat corect contactele. Dacă obișnuiai să conectezi lcd 1202 la Arduino fără I2C, atunci este foarte ușor să te încurci în fire, ceea ce poate face ca afișajul să funcționeze incorect. De asemenea, ar trebui să vă asigurați că contrastul afișajului este crescut, deoarece la un contrast minim nici măcar nu este vizibil dacă LCD 1602 este pornit sau nu. Dacă acest lucru nu ajută, atunci poate că problema poate fi lipirea contactelor, aceasta este atunci când utilizați modulul I2C. De asemenea, un motiv comun pentru care afișajul poate să nu funcționeze este setarea incorectă a adresei I2C. Faptul este că există mulți producători și pot seta o altă adresă, trebuie să o corectați aici:
LiquidCrystal_I2C lcd(0x27, 16, 2);
În paranteze puteți vedea două valori, 0x27 și 16, 2 (16, 2 este dimensiunea afișajului, iar 0x27 este doar adresa I2C). În loc de aceste valori, puteți încerca să puneți 0x37 sau 0x3F. Ei bine, un alt motiv este pur și simplu un LCD 1602 defect. Având în vedere că aproape totul pentru Arduino este fabricat în China, nu poți fi 100% sigur căprodusul nu este defect.
LCD 1602 avantaje și dezavantaje
Să ne uităm la avantajele și dezavantajele LCD-ului 1602.
Pro
- Preț. Acest modul poate fi achiziționat la un preț foarte accesibil din magazinele chinezești. Prețul este de 200-300 de ruble. Uneori chiar vândut cu un modul I2C.
- Ușor de conectat. Probabil că nimeni nu conectează un LCD 1602 fără I2C în zilele noastre. Și cu acest modul, conexiunea are doar 4 pini, nu vor exista „pânze” de fire.
- Programare. Datorită bibliotecilor gata făcute, lucrul cu acest modul este ușor, toate funcțiile sunt deja înregistrate. Și dacă trebuie să-ți adaugi personajul, durează doar câteva minute.
Cons
În timpul utilizării de către mii de radioamatori, nu au fost identificate minusuri mari, doar că există cazuri de cumpărare a unei căsătorii, deoarece opțiunile de afișare chinezești sunt utilizate în principal
Acest articol a discutat despre cum să conectați afișajul LCD 1602 la Arduino și a prezentat, de asemenea, exemple de programe pentru lucrul cu acest afișaj. Este într-adevăr unul dintre cele mai bune din categoria sa, nu doar că mii de radioamatori îl aleg pentru proiectele lor!