Come Collegare un Display LCD ad Arduino
Obiettivo: Utilizzare un Display LCD 16×2 (basato su un Driver Hitachi HD44780).
Componenti elettronici:
- Arduino UNO
- Breadboard
- 1 Display LCD (e.g., 1602A) compatibile con Driver Hitachi HD44780
- 1 Potenziometro da 10 kOhm
- 1 Resistenza da 220 Ohm
Teoria: I display basati su Driver Hitachi HD44780 sono tra i più diffusi in ambito embedded. Caratterizzati da differenti formati (i.e., 8×1, 8×2, 16×2, 20×2, 16×3, etc), questi display permettono di visualizzare solo caratteri. Nella seguente tabella si riporta la descrizione dei PIN del dispositivo:
PIN | Descrizione |
1 | Vss (Massa) |
2 | Vcc (Genericamente 5 V) |
3 | Vee (Controllo contrasto, collegato in genere ad un potenziometrocon tensione che varia da 0 a 5v) |
4 | R/S (0 per selezionare l’invio di un comando, 1 per i dati) |
5 | R/W (0 per selezionare la scrittura di dati o comandi, 1 per la lettura dei dati o dello stato) |
6 | E (inizia il ciclo di scrittura o lettura, secondo R/S e R/W) |
7 | D0 (Bus dati) |
8 | D1 (Bus dati) |
9 | D2 (Bus dati) |
10 | D3 (Bus dati) |
11 | D4 (Bus dati) |
12 | D5 (Bus dati) |
13 | D6 (Bus dati) |
14 | D7 (Bus dati) |
15 | A (Vcc retroilluminazione, se presente) |
16 | K (Vss retroilluminazione, se presente) |
Il Driver HD44780 si basa su una modalità di trasferimento dati di tipo parallelo. Nel dettaglio è supportato sia il trasferimento di 8 bit (l’intero comando D0-D7) sia il trasferimento di 4 bit (D4-D7). Nel secondo caso, per trasmettere un byte vengono effettuati due trasferimenti.
Per la scrittura di un singolo carattere è necessario rispettare il seguente “protocollo di trasmissione“:
- Posizionare il cursore nella posizione desiderata
- Impostare a 1 il pin R/S e a 0 il pin R/W
- Inviare il codice ASCII del carattere
- Impostare ad 1 il pin E per un minimo di 450 nanosecondi ed, in seguito, riportarlo a 0
Da un punto di vista pratico, grazie all’impiego della specifica libreria LiquidCrystal inclusa nel pacchetto software di Arduino è possibile pilotare il display semplificando notevolmente la parte di gestione dei pin, dei comandi e delle relative temporizzazioni. La libreria mette infatti a disposizione una classe LiquidCrystal all’interno della quale sono definite le principali funzioni necessarie per utilizzare i display basati su Driver HD44780. Quali:
- Begin: Inizializza l’interfaccia del display LCD specificandone le dimensioni (larghezza ed altezza)
- SetCursor: Posizione il cursore LCD ovvero la posizione nella quale verrà visualizzato il testo scritto
- Print: Scrive il testo sul display LCD.
Collegamento Circuitale:
Codice:
Personalizzazioni: E’ possibile modificare il contrasto del display intervenendo sul potenziometro.