- Materiale necesare:
- Modulul de afișare grafică Nokia 5110:
- Diagrama circuitului:
- Programul și funcționarea Arduino:
Numele iconic „ Nokia 5110 ” în sine ar fi trebuit să cumpere amintiri ale robustului telefon mobil Nokia, care a fost foarte popular în anii '90. Modelul 5110 a venit cu un afișaj grafic, care era suficient pentru a acționa ca un ecran de afișare pentru mobilul de atunci. Acest ecran a fost capabil să afișeze totul, de la caractere alfanumerice la grafică mică, ceea ce este necesar pentru telefonul mobil. Pe măsură ce pământul se învârtea, au apărut noi tehnologii cu ecrane tactile strălucitoare, iar acest afișaj nu mai este utilizat. Dar sperăm că pot fi folosite în aplicații electronice în care trebuie afișată o mică grafică și să evite cheltuirea banilor pe ecrane mari LCD. Deci, în acest tutorial vom învăța cum să interfațăm un LCD grafic Nokia 5110 cu Arduino și să-l funcționăm.
Aceste LCD au pixeli albi și negri cu dimensiuni 84 × 48. Ar putea arăta monotoni, dar totuși pot fi folosiți pentru a afișa grafică decentă pentru proiectele dvs. și pot fi folosiți cu ușurință cu microcontrolere precum Arduino. Deci sa începem….!
Materiale necesare:
- Placa Arduino (orice versiune)
- Afișaj Nokia 5110
- Conectarea firelor
Modulul de afișare grafică Nokia 5110:
Există două tipuri de LCD-uri grafice disponibile pe piață. Unul cu tampoane de lipit atât deasupra cât și sub ecran și celălalt cu tampoane de lipit numai în partea de jos a ecranului. Cel pe care îl folosim aparține tipului 2, unde există tampoane doar sub afișaj. Ambele module funcționează la fel și, prin urmare, conexiunile sunt aceleași pentru ambele. Deci, indiferent de modul în care este, puteți urma tutorialul.
După cum sa spus mai devreme, Nokia 5110 Graphical LCD are 84 de pixeli în orizontală și 48 de pixeli în verticală. Dimensiunea totală a afișajului este de 1,72 'x 1,72'. Modulul are 6 pini de intrare cu ajutorul cărora îl putem interfața cu orice microcontroler prin comunicare SPI. IC de interfață care comunică între afișaj și Arduino este IC-ul controlerului de afișaj Philips PCD8544 a cărui foaie de date poate fi găsită aici. Cu toate acestea, dacă utilizați Arduino pentru a comunica cu acest IC, atunci nu trebuie să ne facem griji cu privire la foaia tehnică, deoarece există biblioteci care sunt gata să fie descărcate și utilizate. Modulul pe care îl folosim aici este prezentat mai jos.
Diagrama circuitului:
Schema completă a circuitului pentru conectarea LCD-ului grafic Nokia5110 cu Arduino este prezentată mai jos.
Modulul de afișare are 8 pini care sunt utilizați pentru a configura o comunicație SPI cu Arduino. Modulul este alimentat cu pinul de 3,3V al plăcii Arduino. Rețineți că aceste module funcționează pe logică de 3.3V și, prin urmare, nu furnizează 5V pinului Vcc al afișajelor. Am conectat direct Pinul afișajului la Arduino, chiar dacă LCD-ul funcționează pe logică de 3,3V și Arduino pe logică de 5V, deoarece abia atunci am găsit LCD-ul să funcționeze corect. Puteți utiliza un divizor de tensiune pentru a converti 5V la 3,3V, dacă este necesar, dar pentru mine funcționează numai fără conversia logică. Conexiunile sunt destul de simple și simple de realizat. Odată ce ați terminat conexiunile, configurarea dvs. ar arăta așa cum se arată mai jos.
Programul și funcționarea Arduino:
Urmați pașii de mai jos pentru a vă programa Arduino pentru ecranul Nokia 5110. Pașii presupun că ați instalat deja Arduino IDE și sunteți familiarizat cu utilizarea acestuia.
Pasul 1: Deschideți Arduino IDE de pe computer și selectați placa corespunzătoare din meniul de instrumente după conectarea Arduino la computer.
Pasul 2: Faceți clic aici pentru a descărca biblioteca de afișare Nokia 5110 de la biblioteca Adafruit din depozitul GitHub.
Pasul 3: Odată descărcat fișierul Zip, selectați Schiță -> Includeți bibliotecă -> Adăugați bibliotecă.ZIP și navigați la locația în care a fost descărcat codul ZIP.
Notă: Va trebui, de asemenea, să descărcați nucleul grafic Adafruit GFX care face toate cercurile, textul, dreptunghiurile etc. Puteți să-l obțineți de la https://github.com/adafruit/Adafruit-GFX-Library și să îl instalați în același mod.
Pasul 4: Deschideți acum exemplul de program selectând Fișier -> Exemple -> Biblioteca LCD Adafruit PCD Nokia 5110 -> pcdtest și faceți clic pe butonul de încărcare
Pasul 5: Odată ce programul este încărcat, apăsați butonul de resetare de pe Arduino și ar trebui să vedeți exemplul de program care afișează toate animațiile așa cum se arată în videoclipul dat la sfârșitul acestui tutorial.
Puteți citi prin intermediul programului de exemplu pentru a înțelege diversele funcții încorporate care ar putea fi utilizate pentru a efectua diverse designuri grafice pe ecranul LCD. Dar hai să facem un pas mai departe și să încercăm să afișăm Logo-ul CircuitDigest pe ecranul LCD.
Acum deschideți imaginea necesară în Paint și redimensionați imaginea. Dimensiunea maximă a imaginii pe care o putem folosi pentru afișajul nostru este de 84 × 48.
După redimensionarea imaginii, salvați imaginea ca bitmap (alb-negru) utilizând opțiunea de salvare ca din Paint. Pentru a afișa imaginea sub formă de bitmap pe ecranul nostru LCD, vom avea nevoie de un software care poate converti imaginea bitmap în cod. Puteți descărca software-ul făcând clic aici. Odată descărcat, dezarhivați fișierul și faceți clic pe „BitmapEncoder” pentru a lansa aplicația. Deschideți imaginea bitmap pe care tocmai am salvat-o folosind acest software pentru a obține matricea de valori codificate. Puteți copia direct aceste valori și le puteți lipi în matricea dvs. Arduino. Valoarea afișată de software pentru sigla noastră este prezentată mai jos
După cum puteți vedea, matricea începe cu valoarea 48, 48 aceasta este dimensiunea imaginii noastre. Nu ar trebui să adăugăm acest lucru în matricea noastră. Deci, eliminați primele două valori și utilizați restul ca valoare a matricei din program. Matricea va arăta ca mai jos. Programul complet este dat la sfârșitul acestei pagini pentru referință.
static const nesemnat Logo PROGMEM = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B000000, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B00111110, B00000000, B00000000, B11111100, B01111110, B00000000, B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B1111111, B11111111, B11111111, B11111111, B11111111 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B11, B11, B00, B11, B00, B11, B11 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B01111111, B11111111, B11110000, B00001111, B11100000, B11111111, B11111111, B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11111100, B00000000, B00000000, B00000001, B11111111, B10000111, B11011000, B00111111, B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00000011, B11111111, B11111111, B11000000, B00000000, B00000000, B00000000, B11111111, B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Acum, pentru a afișa această bitmap, trebuie să folosim următoarele linii de cod. Unde se șterg datele anterioare de pe ecran și se scrie noua imagine bitmap.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
Linia display.drawBitmap (20, 0, Logo, 48, 48, 1); afișează poziția, dimensiunea și culoarea imaginii bitmap. Sintaxa poate fi dată ca.
display.drawBitmap (X_Position, Y_Position, Name of Array, lungimea imaginii, lățimea imaginii);
Lungimea și lățimea imaginii pot fi obținute din primele două elemente ale matricei, așa cum am spus mai devreme. Când acest cod este rulat, vom afișa harta de biți pe ecranul nostru LCD, așa cum se arată mai jos.
De asemenea, puteți afișa text simplu așa cum se arată mai jos:
Sper că ați înțeles tutorialul și ați primit ecranul LCD Nokia 5110 cu Arduino. Cu acest afișaj grafic în mânecă puteți crea multe proiecte care necesită detalii grafice minore. Lucrarea completă poate fi găsită în videoclipul prezentat mai jos. Dacă vă confruntați cu orice problemă pentru a face acest lucru să funcționeze, puteți folosi forumul pentru a posta problema dvs. sau secțiunile de comentarii de mai jos.