Come collegare un display lcd Arduino

Il Display LCD è un interessante strumento, utile per interfacciare il mondo digitale con quello umano. Con questo strumento, sarà possibile leggere unità fisiche, come l’attuale temperatura in casa, l’ora, lo stato di accensione di un LED, oppure potremo comporre testo, scritte scorrevole e tanto altro ancora.

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.
Prima di collegarlo è 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.

Tabella dei collegamenti:

Pin display  Utilizzo
1 Vss GND – Massa
2 Vcc + 5V
3 Vee Contrasto
4 RS segnale di selezione registro, pin 12 di Arduino
5 R/W  segnale Read/Write. 0 scrivi 1 leggi
6 Enable (E) per abilitare la scrittura nei registri, 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

Schema

display 2x16
Avrai notato che i pin 7,8,9 e 10 sono indicati come non collegati, i dispaly di questo tipo possono 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 è sufficiente ed ha il vantaggio appena descritto.
Il trimmer collegato al pin 3 del lcd è di 10K e ti permette di regolare il contrasto del display, mentre quello collegato al pin 15 serve per la regolazione della luminosità dei display a 16 pin retroilluminati.

Sketch 1

/*
 Questo programma mostra come usare il Display LCD per mostrare la parola "Hello World" e tempo da cui è stato accesso

  Il Circuito:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Questo esempio è tratto dal sito di Arduino

http://www.arduino.cc/en/Tutorial/LiquidCrystal

 */

// include the library code:
#include <LiquidCrystal.h>

// Viene inzializzata la libreria del Display con i relativi PIN a cui è connesso il Display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

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

void loop() {
  // Imposta il cursore alla colonna 0, riga 1
  // (nota: line 1 è la seconda riga, dal momento che il conteggio inizia dallo 0):
  lcd.setCursor(0, 1);
  // Stampa a video i secondi passati dal momento del reset
  lcd.print(millis()/1000);
}

Sketch2 (Quello che vedete nella prima immagine del display)

#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);
}

void loop() {
// Print a message to the LCD.

lcd.setCursor(0, 0);  // set the cursor to column 0, line 0
lcd.print("Ciao Ragazzi :)");
lcd.setCursor(0, 1);  // set the cursor to column 0, line 1
lcd.print("CGElettronica");
}

Sketch 3 (Scritta scorrevole)

// include the library code:
#include <LiquidCrystal.h>

// Viene inizializzata la libreria del Display con i relativi PIN a cui è connesso il Display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  lcd.print("Ciao a tutti da");   //Stampa a video "Ciao a tutti da"
  lcd.setCursor(0, 1);
  lcd.print("GCElettronica.blogspot.it");   //Stampa a video "GCElettronica.blogspot.it"
} 

void loop() {
  for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
    lcd.scrollDisplayLeft();
    delay(400);
  }
}

Video

Ciao, se ti è piaciuto il mio blog e se qualche articolo ti è stato d\'aiuto, se te la senti e se vuoi, incentiva il mio lavoro offrendomi un caffè o qualunque altra cosa preferisci farmi ricevere. Cercherò di dare il meglio di me e di inserire articoli sempre più interessanti e utili 🙂
Clicca QUI per la donazione!