Conectarea LCD 1602 la Arduino: descriere, funcții, instrucțiuni, caracteristici, probleme și soluții

Cuprins:

Conectarea LCD 1602 la Arduino: descriere, funcții, instrucțiuni, caracteristici, probleme și soluții
Conectarea LCD 1602 la Arduino: descriere, funcții, instrucțiuni, caracteristici, probleme și soluții
Anonim

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.

Display LCD 1602 pentru conectare la arduino
Display LCD 1602 pentru conectare la arduino

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.

Pinout afișaj LCD 1602
Pinout afișaj LCD 1602

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:

Conectarea display-ului la arduino
Conectarea display-ului la arduino

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.

Modul I2C pentru afișaj LCD 1602
Modul I2C pentru afiș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:

Afișați conexiunile folosind modulul I2C
Afișați conexiunile folosind modulul 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.

Adăugarea de caractere personalizate pe LCD 1602
Adăugarea de caractere personalizate pe LCD 1602

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!

Recomandat: