Benvenuto in Megistone   Click to listen highlighted text! Benvenuto in Megistone Powered By GSpeech
Benvenuto in Megistone   Click to listen highlighted text! Benvenuto in Megistone Powered By GSpeech
Stampa

I display sono dispositivi di output che visualizzano informazioni, in genere caratteri alfanumerici (lettere e numeri), simboli o figure. Le tecnologie principali per realizzare un display sono:

 

Il display LCD compreso nello starter kit, ha le seguenti caratteristiche:

 

Pin Display LCD  Pin Arduino  Descrizione
1 (VSS) GND  
 2 (VDD) +5 V  
3 (V0)   Regolazione del contrasto mediante trimmer (0 V-5 V)  
4 (RS) 12 (Digital) Selezione del registro interno su cui leggere/scrivere
5 (R/W) GND Seleziona la modalità: lettura (5 V) / scrittura (GND)
6 (Enable) 11 (Digital) Abilita la scrittura nei registri interni
11 (D4) 5 (Digital) Linea dati collegata a un registro interno
12 (D5) 4 (Digital) Linea dati collegata a un registro interno
13 (D6)  3 (Digital) Linea dati collegata a un registro interno
 14 (D7)   2 (Digital)   Linea dati collegata a un registro interno
15 (A)  +4,2 V Anodo del LED per retroilluminazione
16 (K) GND Catodo del LED per retroilluminazione

 Tabella Collegamenti tra i pin del display LCD e i pin di Arduino

Per fornire al pin 15 i 4,2 V necessari per la retroilluminazione del display, si usa la V di Arduino (5 V): in serie alla V, si inserisce una resistenza di 220 Ω; la caduta sul resistore farà abbassare i 5 V ad un valore accettabile dal display.

Per gestire il display LCD si usano le istruzioni della libreria LiquidCrystal.h. Quelle fondamentali sono le seguenti:

#include <LiquidCrystal.h> // include la libreria LiquidCrystal.h

LiquidCrystal lcd(12,11,5,4,3,2); // inizializza la libreria con i numeri dei pin di interfaccia di Arduino (12,11,5,4,3,2)

lcd.begin(16, 2); // imposta il numero di colonne e righe del display

lcd.setCursor(colonna, riga); // porta il cursore nella posizione del display specificata da colonna 0-15, riga 0-1)

lcd.print(dato); // scrive il dato (di tipo: char, byte, int, long, string) sul display; ad esempio lcd.print(cont), scrive il valore della variabile cont nella posizione del cursore; lcd.print("Ciao!"), scrive la stringa "Ciao!" nella posizione del cursore.

Esercizio

Scrivere uno sketch per far lampeggiare sul display la scritta "W Arduino!, con la «W» al centro della prima riga (riga 0) e «Arduino!» al centro della seconda riga (riga 1).

Soluzione

Tenere presente che le 16 colonne sono numerate da 0 a 15, mentre le due righe da 0 a 1.

#include <LiquidCrystal.h> // include la libreria LiquidCrystal.h
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // inizializza la libreria con i numeri
// dei pin di interfaccia
void setup(){

lcd.begin(16, 2); // imposta il numero di colonne e righe del display

lcd.setCursor(7, 0); // porta il cursore su colonna 7 e riga 0
lcd.print("W"); // scrivi "W" al centro della prima riga

lcd.setCursor(4, 1); // porta il cursore su colonna 4 e riga 1
lcd.print("Arduino!"); // scrivi "Arduino!" al centro della seconda riga
}

void loop(){

// lampeggio del display
lcd.noDisplay(); // spegni il display
delay(500); // pausa di 500 ms

lcd.display(); // accendi il display
delay(500); // pausa di 500 ms
} 

 
Esercizio
Mostrare la temperatura sul display
In questo esempio vogliamo utilizzare la scheda Arduino per mostrare sul display la temperatura letta da un sensore TMP36. Il sensore è connesso con anodo e catodo collegati rispettivamente a massa (GND) e all’alimentazione (+5 V). Il piedino di lettura è collegato al pin PWM A0.
 
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = 0;
int tempC;
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
tempC = get_temperature(sensorPin);
lcd.setCursor(0,0);
lcd.print("Temp.: "); lcd.print(tempC); lcd.print(" "); lcd.print((char)158); lcd.print("C");
delay(800);
}
int get_temperature(int pin)
{
int temperature = analogRead(pin);
float voltage = temperature * 5.0;
voltage = voltage / 1024.0;
return ((voltage - 0.5) * 100);
}
 

Click to listen highlighted text! Powered By GSpeech