In questa guida vedremo come collegare alla nostra scheda Arduino un Display LCD Alfanumerico basato sul controller Hitachi HD44780.
Abbiamo già parlato di questo display nella guida “Costruire la Casa Domotica” nella quale usiamo il Display LCD per visualizzare la temperatura, stato dell’allarme e altre informazioni. Il progetto era basato sui microcontrollori PIC16F, ma in questa guida vedremo come collegarlo alla scheda Arduino, la parte che cambierà fondamentalmente è quella riguardante la programmazione.
Componenti utilizzati:
- Arduino Uno
- Display LCD con controller Hitachi HD44780
- Potenziometro 10K
Il Display LCD Alfanumerico
Prima di iniziare diamo alcune informazioni sui display basati su questi controller Hitachi HD44780. Questi display tipicamente si alimentano a 5V; l’alimentazione principale non attiva la retroilluminazione che viene comandata a parte. La corrente assorbita dalla logica dipende molto da quanto sia grande (in termini di caratteri) il display e da quanta potenza sia richiesta per accendere i pixel. I display presentano 16 pin disposti in fila. In tabella elenco tutti i pin e le relative funzioni:
Tutti i Display hanno un contoller basato sul diffusissimo HD44780 di Hitachi che consente l’interfacciamento con un microcontrollore mediante due modalità di connessione:
- con bus dati a 8 bit
- con bus dati a 4 bit.
I due casi si distinguono sia per il numero di pin impiegati sia per le diverse impostazioni necessarie al firmware. Quello che rimane però in comune alle due modalità è il numero di pin di controllo, che restano sempre tre. In particolare:
- E: chip Enable
- R/W: Read or Write (lettura R o scrittura W)
- RS: Register Select (comandi o dati)
Collegamento alla scheda Arduino
I collegamenti sono molto semplici e utilizzeremo gli stessi pin usati nell’esempio messo a disposizione dal sito Arduino.cc precisamente LiquidCrystal – “Hello World!”
Programma
Analizziamo lo sketch che andremo a caricare:
//includere la libreria:
#include <LiquidCrystal.h>
//Specifichiamo quali pin verranno utilizzati per gestire il Display specificandoli come di seguito LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
//impostiamo il numero di colonne e di righe del nostro display 16×2
lcd.begin(16, 2);
//visualizziamo nella prima riga a partire dalla prima colonna il messaggio ‘Ciao Mondo’
lcd.print(“Ciao Mondo”);
}
void loop() {
//spostiamo il cursore all’inizio della seconda riga
//ricordiamo che con 1 si indica la riga 2 perche’ si inizia a contare da 0
lcd.setCursor(0, 1);
//visualizza i secondi dall’inizio dell’avvio di arduino
lcd.print(millis() / 1000);
}