16×2 LCD è chiamato così perché ha 16 colonne e 2 righe. Ci sono molte combinazioni disponibili, come 8×1, 8×2, 10×2, 16×1, ecc. Ma il più usato è il 16*2 LCD, quindi lo stiamo usando qui.
Tutti i display LCD sopra menzionati avranno 16 pin e l’approccio di programmazione è anche lo stesso e quindi la scelta è lasciata a voi. Sotto c’è la piedinatura e la descrizione dei pin del modulo LCD 16×2:
Sr. No |
Pin No. |
Nome del pin |
Tipo di pin |
Descrizione pin |
Connessione pin |
Pin 1 |
Massa |
Pin di sorgente |
Questo è un pin di massa del LCD |
Collegato alla massa dell’MCU/ Sorgente di alimentazione |
|
Pin 2 |
VCC |
Pin di alimentazione |
Questo è il pin della tensione di alimentazione del LCD |
Connesso al collegato al pin di alimentazione della fonte di alimentazione |
|
Pin 3 |
V0/VEE |
Pin di controllo |
regola il contrasto del LCD. |
Connesso ad un POT variabile che può generare 0-5V |
|
Pin 4 |
Selezione registro |
Pin di controllo |
Commuta tra registro comandi/dati |
Connesso ad un pin MCU e riceve o 0 o 1. 0 -> Modalità comando 1-> Modalità dati |
|
Pin 5 |
Lettura/Scrittura |
Controllo Pin |
Collega l’LCD tra l’operazione di lettura/scrittura |
Connesso ad un pin MCU e riceve 0 o 1. 0 -> Operazione di scrittura 1-> Operazione di lettura |
|
Pin 6 |
Enable |
Pin di controllo |
Deve essere tenuto alto per eseguire operazioni di lettura/scrittura |
Connesso a MCU e tenuto sempre alto. |
|
Pin 7-14 |
Bit di dati (0-7) |
Pin di dati/comando |
Pin usato per inviare comandi o dati al LCD. |
In modalità 4 fili Solo 4 pin (0-3) sono collegati a MCU In modalità 8 fili Tutti gli 8 pin (0-7) sono collegati alla MCU |
|
Pin 15 |
Pin positivo del LED |
Pin del LED |
Normale funzionamento del LED per illuminare il LCD |
Connesso a +5V |
|
Pin 16 |
LED Negativo |
LED Pin |
Normale operazione tipo LED per illuminare il LCD collegato a GND. |
Connesso a terra |
Va bene se non capite la funzione di tutti i pin, ve la spiegherò in dettaglio qui sotto. Ora, torniamo al nostro LCD:
Ok, cosa sono questi due cerchi neri sul retro del nostro LCD?
Questi cerchi neri consistono in un’interfaccia IC e i suoi componenti associati per aiutarci a usare questo LCD con l’MCU. Poiché il nostro LCD è un LCD a matrice di punti 16*2 e quindi avrà (16*2=32) 32 caratteri in totale e ogni carattere sarà composto da 5*8 Pixel Dots. Un singolo carattere con tutti i suoi Pixel attivati è mostrato nell’immagine sottostante.
Quindi ora, sappiamo che ogni carattere ha (5*8=40) 40 Pixel e per 32 caratteri avremo (32*40) 1280 Pixel. Inoltre, l’LCD dovrebbe anche essere istruito sulla posizione dei pixel.
Sarebbe un compito frenetico gestire tutto con l’aiuto di MCU, quindi viene usato un IC di interfaccia come HD44780, che è montato sul modulo LCD stesso. La funzione di questo IC è quella di ottenere i comandi e i dati dalla MCU e di elaborarli per visualizzare informazioni significative sul nostro schermo LCD.
Discutiamo i diversi tipi di modalità e opzioni disponibili nel nostro LCD che deve essere controllato dai nostri pin di controllo.
Modalità a 4 bit e a 8 bit dell’LCD:
L’LCD può lavorare in due diverse modalità, cioè la modalità a 4 bit e quella a 8 bit. Nella modalità a 4 bit inviamo i dati pennino per pennino, prima il pennino superiore e poi quello inferiore. Per quelli di voi che non sanno cos’è un nibble: un nibble è un gruppo di quattro bit, quindi i quattro bit inferiori (D0-D3) di un byte formano il nibble inferiore mentre i quattro bit superiori (D4-D7) di un byte formano il nibble superiore. Questo ci permette di inviare dati a 8 bit.
Mentre nella modalità a 8 bit possiamo inviare i dati a 8 bit direttamente in un colpo solo poiché usiamo tutte le 8 linee di dati.
Ora dovete aver indovinato, sì la modalità a 8 bit è più veloce e impeccabile della modalità a 4 bit. Ma lo svantaggio principale è che ha bisogno di 8 linee dati collegate al microcontrollore. Questo ci farà esaurire i pin di I/O sulla nostra MCU, quindi la modalità a 4 bit è ampiamente utilizzata. Non si usano pin di controllo per impostare queste modalità. È solo il modo di programmazione che cambia.
Modalità di lettura e scrittura dell’LCD:
Come detto, l’LCD stesso consiste in un CI di interfaccia. L’MCU può leggere o scrivere su questo IC di interfaccia. La maggior parte delle volte ci limiteremo a scrivere al CI, poiché la lettura lo renderebbe più complesso e tali scenari sono molto rari. Informazioni come la posizione del cursore, gli interrupt di completamento dello stato ecc. possono essere letti se necessario, ma sono fuori dallo scopo di questo tutorial.
Il CI di interfaccia presente nella maggior parte degli LCD è HD44780U, per programmare il nostro LCD dovremmo imparare il datasheet completo del CI. La scheda tecnica è data qui.
Comandi LCD:
Ci sono alcune istruzioni di comando preimpostate in LCD, che dobbiamo inviare a LCD attraverso un microcontrollore. Alcune importanti istruzioni di comando sono date qui sotto:
Codice esadecimale |
Comando al registro istruzioni LCD |
0F |
LCD ON, cursore ON |
Pulisci schermo |
|
Ritorno home |
|
Diminuisci cursore (sposta il cursore a sinistra) |
|
Cursore di incremento (sposta il cursore a destra) |
|
Spostamento a destra del display |
|
Spostamento a sinistra |
|
0E |
Visualizzazione ON, cursore lampeggiante |
Forza il cursore all’inizio della prima riga |
|
C0 |
Forza il cursore all’inizio della seconda riga |
2 linee e matrice 5×7 |
|
Cursore linea 1 posizione 3 |
|
3C |
Attiva la seconda linea |
Display OFF, cursore OFF |
|
C1 |
Passa alla seconda linea, posizione 1 |
OC |
Visualizza ON, cursore OFF |
C1 |
Salta alla seconda linea, posizione 1 |
C2 |
Salta alla seconda linea, posizione 2 |