Tutorial: Arduino scrive su un Lcd

Mi sono arrivate alcune richieste in merito alla possibilità di scrivere su dispaly Lcd con Arduino, ho quindi iniziato qualche test in merito che oggi vorrei condividere con te. Come sempre consioglio di partire dal sito ufficiale Arduino per tutti i dubbi e gli approfondimenti.

lcd 2x16

Partiamo dalla scelta dell’Lcd: indipendentemente dal numero di caratteri e linee quello che più è importante è il tipo di processore e driver che il costruttore del tuo Lcd ha utilizzato, quello in figura è un display LCD 2×16 con driver Hitachi HD44780, è anche quello più utilizzato, ne ho trovati alcuni tra i componenti elettronici di recupero in mio possesso e tutti utilizzano il medesimo driver.

La prima cosa che ti interesserà sapere è come collegarlo, per questo è necessario distinguere i display di questo tipo in due categorie quelli a 14 contatti e quelli a 16 contatti,la differenza è che questi ultimi sono retroilluminati e la luminosità viene regolata agendo sul pin 15 e 16. Ecco la tabella dei collegamenti:

Pin Utilizzo
1 Vss: GND – Massa
2 Vcc: +5v
3 Vee: Contrasto
4 RS: indica il tipo di comando che inviamo, pin 12 di Arduino
5 R/W: indica all’lcd se deve scrivere o leggere – 0 scrivi 1 leggi
6 Enable (E): indica che i dati per la lettura, pin 11 di Arduino
7 DB0: linea dati 0, non usato
8 DB1: linea dati 1, non usato
9 DB2: linea dati 2, non usato
10 DB3: linea dati 3, non usato
11 DB4: linea dati 4 collegato al pin 5 di Arduino
12 DB5: linea dati 5 collegato al pin 4 di Arduino
13 DB6: linea dati 6 collegato al pin 3 di Arduino
14 DB7: linea dati 7 collegato al pin 2 di Arduino
15  Led+: terminale positivo per la retroilluminazione
16  Led-: terminale negativo per la retroilluminazione

Avrai notato che i pin 7,8,9 e 10 sono indicati come non collegati, i dispaly di questo tipo posson essere pilotati con 4 o 8 bit, solitamente essi sono pilotati con 4 bit risparmiando pin di Arduino da destinare ad altri scopi, la differenza tra una modalità e l’altra è la velocità di trasferimento dell’informazione al display, non trovandoti in ambienti critici la modalità a 4 bit è sufficente ed ha il vantaggio appena descritto.

Ed ecco lo schema di collegamento classico dell’LCD al tuo Arduino:

Schema di collegamento Lcd e Arduino

Il potenziometro collegato al pin 3 dell’Lcd è di 10K e ti permette di regolare il contrasto del display, provandolo vedrai che ruotando il potenziometro da un estremo all’altro scompariranno i caratteri o saranno coperti dai punti, troppo evidenti, del display.

In questo collegamento non sono utilizzati i pin 15 e 16, non dovresti aver prblema a collegarli con un potenziometro da 10K anch’essi per regolare l’intensità della retroilluminazione.

Vediamo lo sketch, partiamo con il primo, classico e molto semplice “Hello Word” che trovi anche tra gli esempi del sito e dell’Ide. Il funzionamento è molto semplice perchè la comunità di sviluppo Arduino ha tra i suoi membri appassionati con voglia di condividere le proprie idee che hanno scritto e rilasciato sotto licenza Cretive Common la libreria LiquidCrystal.

Ed ecco lo sketch:

#include <LiquidCrystal.h>

// initialize the library with
// the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row,
  // since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

linea 1: includi la libreria LiquidCrystal.h che semplifica tutte le operazioni di scrittura sul display;
linea 5: inizializza l’oggetto lcd passandogli i pin a cui il display è collegato sul tuo Arduino, nel caso illustrato al pin 12 di Arduino è connesso il pin 4 del display (RS) al pin 11 di Arduino il pin 6 del display ed ai pin 2,3,4 e 5 sono connessi i pin lcd 14,13,12 e 11 come da schema;
linea 7: la funzione setup di Arduino serve a settare tutti i parametri di startup dello sketch;
linea 9: inizializzi il display vero e proprio indicando al metodo begin il numero di caratteri e righe, nell’esempio 16 cratteri e 2 righe, se sbagli i parametri otterai delle anomalie nella gestione come ad esempio inserendo 8 e 1 non potrai mai scrivere oltre l’ottavo carattere e mai sulla seconda riga;
linea 11: scrivi “hello, world!” sul display, come vedi è molto semplice, basta utilizzare il metodo print della classe liquidCrystal. La frase sarà scritta partendo dal primo carattere della prima riga del display;
linea 14: la funzione loop di Arduino è quella ciclicamente ripetuta dal processore drante tutto il ciclo di funzionamento dello sketch;
linea 18: sposta il cursore alla posizione carattere 0 della seconda riga (1) ricorda ch per Arduino la prima riga del display è la 0 e la seconda di consegueza è la 1;
linea 20: utilizzando nuovamente il metodo print puoi scrivere nella nuova posizione ciò che vuoi, nell’esempio ad ogni ciclo dello sketch viene aggiornato il valore in millisecondi/1000 dalla partenza dello sketch stesso, la prima riga non viene mai modificata.

Nei prossimi articoli ti mostrerò altri interessanti esempi di utilizzo dei display Lcd.
Buon lavoro

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/tutorial-arduino-scrive-su-un-lcd.html

131 pings

Skip to comment form

  1. […] collegare il display ad Arduino come mostrato in questo articolo e ruota il cursore del potenziomentro fino a vedere i caratteri sullo […]

  2. […] World” dell’IDE Arduino, la descrizione dello sketch puoi leggerla in un mio precedente articolo, ecco […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.