În secțiunea anterioară, am afirmat că cel mai simplu mod de a conecta un ecran LCD deja terminat la Arduino, pe care, pe lângă afișaj, există și șase butoane. Cei care nu au acest scut, dar au un afișaj, îl pot conecta direct folosind fire sau un panou de patch-uri. Știm deja că afișajul LCD poate comunica în modul 4 sau 8 biți. Și am spus că modul pe 4 biți este folosit cel mai des. Vom folosi și acest mod, deoarece bibliotecile disponibile în mediul de dezvoltare funcționează cu acest mod.
Fig. Nr. 1
Următoarele semnale sunt utilizate în modul pe 4 biți:
- Semnal RS (Selectare înregistrare) - selectarea registrelor - pe pinul afișajului nr. 4 (al patrulea din stânga)
- Semnal EN (Enable) - activați scrierea în registre - pinul nr. 6 (al șaselea din stânga)
- Semnal DB4 - date, bit 4 - pe pinul afișajului nr. 11 (al unsprezecelea din stânga)
- Semnal DB5 - date, bit 5 - pe pinul afișajului nr. 12 (al doisprezecelea din stânga)
- Semnal DB6 - date, bit 6 - pe pinul afișajului nr. 13 (al treisprezecelea din stânga)
- Semnal DB7 - date, bit 7 - pe pinul afișajului nr. 14 (paisprezecea de la stânga)
În plus față de aceste semnale, o conexiune de tundere sau potențiometru de aproximativ 10 kiloohmi între terminalele Vss, Vdd și Vo (pinii 1, 2 și 3 ai afișajului) este foarte des utilizată pentru a regla contrastul afișajului și a LED-urilor + și LED- terminale (pinii 14 și 15) ca lumină de fundal. Conexiunea acestor fire nu este obligatorie, dar foarte adecvată.
Aceste semnale pot fi conectate la orice priză de date digitale a Arduino, dar cel mai adesea sunt conectate la D2 la D12. Vă vom arăta cele mai frecvent utilizate două metode.
Conexiune utilizând câmpul de conectare
Cei care dețin doar un ecran LCD îl pot conecta, de exemplu, în conformitate cu această schemă (Fig. Nr. 1). Deoarece nu au asigurat un ecran LCD gata făcut, mă aștept să fie suficient de erudiți și capabili să-l conecteze corect la Arduino. Rețineți că în diagrama de mai sus, semnalele sunt interconectate conform tabelului nr. 1.
Semnal LCD
Pin LCD
Semnal Arduino
În același timp, diagrama arată și conexiunea potențiometrului de contrast și a luminii de fundal.
Cei care utilizează câmpul de interconectare pot implementa această conexiune, de exemplu, conform FIG. 2.
Și cei care dețin un ecran LCD pur și simplu îl glisează în Arduino și putem începe să lucrăm.
Utilizarea ecranului LCD
Unele scuturi LCD au diferite terminale conectate la Arduino. Prin urmare, este necesar să aflați schema de cablare de la producător (sau de la vânzător) și să citiți din acesta unde este conectat pinul respectiv. Pentru marea majoritate a ecranelor LCD, conexiunea conform tabelului nr. 2.
Semnal LCD
Pin LCD
Semnal Arduino
Poate cineva va argumenta de ce am conectat afișajul LDC la alți pini atunci când am putea folosi aceeași metodă ca în shell. Acest lucru se datorează faptului că este posibil să întâlnim acest lucru în viitor și să putem modifica cu ușurință definiția conexiunii din program.
Biblioteca pentru lucrul cu ecran LCD
Binecunoscuta bibliotecă LiQuidCrystal este cea mai des utilizată pentru a lucra cu afișaje LCD în mediul de dezvoltare Arduino. Face deja parte din mediul înconjurător și nu trebuie instalat. Tot ce trebuie să facem este să-l apelăm în programul nostru și să-l folosim. Biblioteca are multe comenzi, ne vom familiariza treptat cu ele folosind exemple de exemple. Trebuie remarcat faptul că există alte biblioteci pentru lucrul cu afișaje LCD, dar acestea nu sunt atât de răspândite. Nu fac nici măcar parte din mediul de dezvoltare Arduino, deci trebuie descărcate de pe Internet și instalate în mediu. Vom arăta cum se adaugă bibliotecile în mediul Arduino alteori.
"Salut Lume!"
Vă amintiți unul dintre primele noastre programe în care am salutat lumea cu monitorul computerului la care a fost conectat Arduino? Chiar și acum salutăm lumea, dar direct pe ecranul LCD al Arduino.
Declarația conține textul unui program simplu:
Prima linie conține o nouă intrare #include pentru noi . Aceasta înseamnă că trebuie să atașăm (din punct de vedere tehnic, link) la programul nostru, care este definit în fișierul antet numit LiquidCrystal. Pentru ce alte fișiere antet sunt utilizate (le știm prin extensia .h) vi se va explica alteori. Deocamdată trebuie să știm doar că, cu această comandă, apelăm o bibliotecă cu numele corespunzător. Biblioteca conține toate funcțiile disponibile pentru lucrul cu ecranul LCD, așa că nu mai trebuie să le creăm complicate, ci doar să le folosim cu ușurință.
Comanda LiquidCrystal se află în partea de definiție a codului programului. Această funcție declară o anumită obiect (obiect program) cu un nume specific, sub care îl vom numi în continuare în programul nostru. În acest caz declarăm un obiect numit În același timp în această funcție definim la care pini (pini) Arduino este conectat afișajul LCD.
Terminalele sunt definite în următoarea ordine: RS, EN, D4, D5, D6, D7. Este astfel clar că această funcție utilizează conexiunea pinilor conform tabelului nr. 2 (în cazul în care am folosit scutul LCD deja terminat). Dar, după cum am menționat deja, nu există nimic care să ne împiedice să folosim o altă conexiune și să definim pinii corecti în această funcție. Deci, dacă conectăm afișajul LCD conform diagramei din imaginile nr. 1 și 2, declarația obiect va fi
LiquidCrystal lcd (12, 11, 5, 4, 3, 2)
Există o singură comandă lcd.begin (16, 2) în secțiunea setup (). Metoda de începere a obiectului LCD activează afișajul și definește câte coloane (caractere pe linie) și rânduri are. În cazul nostru, avem un afișaj pe două linii cu 16 caractere pe linie. (Dacă am avea un alt afișaj conectat, cum ar fi un 4-line cu 20 de caractere pe linie, am folosi comanda lcd.begin (20, 4)). Numai pentru completitudine, există afișaje pe 2 linii cu 20 de caractere și afișaje pe o singură linie cu 16 caractere.
În bucla loop (), comanda lcd.SetCursor setează poziția cursorului de afișare. Poziția este numerotată din colțul din stânga sus al afișajului, astfel încât primul caracter să aibă numărul de ordine 0 (zero) și prima linie, de asemenea, numărul 0 (zero). Astfel, scrierea lcd.setCursor (0,0) setează cursorul la poziția primului caracter al primei linii (în mod similar, comanda lcd.setCursor (0,1) setează cursorul la poziția primului caracter. a celuilalt linia. Comanda lcd.print („Bună ziua, lume!”) Ne este familiară - obiectul LCD imprimă textul Bună ziua lumii! pe linia stabilită. Următoarea comandă setCursor va muta cursorul pe a doua linie și ultima comandă lcd.print va imprima textul Cum să?.
Vom scrie programul, îl vom traduce și îl vom încărca pe Arduino. Dacă nu am greșit nicăieri, vom vedea textele relevante pe ecran.
Să încercăm să înlocuim ultimul text neaccentuat din program cu text accentuat (de exemplu, ce mai faci?), Compilează și încarcă pe Arduino. Ce caractere vom vedea pe ecranul LCD? Personajele á și š sunt cumva ilizibile. Acest lucru se datorează faptului că memoria afișajului LCD nu conține caracterele noastre slovace. Dar nu vă faceți griji, vom convinge ecranul să scrie frumos cu balsamuri și lungimi. Dar data viitoare.