Tra gli ultimi acquisti ho ordinato un LCD 16×2 Blue LED Backlight prodotto dalla Microrobot a Latina in Italia.
L’LCD 16×2 Blue LED Backlight unisce un LCD 16×2 di tipo a retroilluminazione Blue e scritte in bianco a 5 pulsanti in linea collegati tutti al pin A0, sistema simile a quello utilizzato dalla KeyPad LCD
Avrai subito notato la prima differenza tra le due shield è la posizione dei pulsanti che nella LCD 16×2 Blue LED Backlight sono posizionati sulla stessa linea:
Tale differenza può rivelarsi utile in progetti in cui i pulsanti non servono a spostarsi tra i menu ma evidenziano delle funzioni, il vantaggio è sopratutto nella realizzazione della masherina che ospiterà il progetto.
Collegamenti dei pulsanti nella LCD 16×2 Blue LED Backlight
I 5 pulsanti della LCD 16×2 Blue LED Backlight sono collegati a delle resistenze che ne determinano il valore alla pressione, la documentazione ufficiale ( diponibile in questo link ) riporta la tabella seguente con il riferimento al valore in Volt di ciascun pulsante:
Il display della LCD 16×2 Blue LED Backlight è collegato invece ai pin:
Warning!
Non ho trovato nella documentazione il pin di controllo del Blaklight ed incuriosito ho scritto al produttore che mi ha gentilmente risposto:
Ciao Mauro,
Lo sketch di test dell’LCD 16×2 Blue LED Backlight
Ho scritto un semplicissimo sketch di test per provare la scrittura sull’LCD e visualizzare sulla seconda linea del display il valore rilevato sul pin A0 alla pressione di ciascun pulsante:
// include the library code: #include <LiquidCrystal.h> #define RS 7 #define EN 6 #define D4 5 #define D5 4 #define D6 3 #define D7 2 #define BUTTON A0 char lcdBuffer[16]; // initialize the library with the numbers of the interface pins LiquidCrystal lcd(RS, EN, D4, D5, D6, D7); void setup() { lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("LCD 16x2 microR"); lcd.setCursor(0,1); lcd.print("mauroalfieri.it"); delay( 2000 ); lcd.clear(); } void loop() { sprintf(lcdBuffer, "Valore: %04d", analogRead( BUTTON ) ); lcd.setCursor(0,1); lcd.print(lcdBuffer); delay( 100 ); }
non occorrono spiegazioni per la semplicità dello sketch, almeno penso.
Tuttavia vorrei sottolineare alcuni blocchi dello sketch in cui esegui le impostazioni:
#define RS 7 #define EN 6 #define D4 5 #define D5 4 #define D6 3 #define D7 2
definisci i pin a cui sono collegati i pin dell’LCD e alla linea 11: definisci il pin da cui leggi i valori dei pulsanti: A0;
linea 13: definisci un array di tipo char in cui memorizzerai la stringa da visualizzare sul display;
nella funzione loop() dalla linea 31 alla 33:
sprintf(lcdBuffer, "Valore: %04d", analogRead( BUTTON ) ); lcd.setCursor(0,1); lcd.print(lcdBuffer);
linea 31: componi il messaggio da visualizzare e lo assegni all’array visto alla linea 13: lcdBuffer;
linea 32: posiziona il cursore alla prima colonna (0) della seconda linea (1);
linea 33: scrivi sul display la stringa lcdBuffer;
Il video del funzionamento dell’LCD 16×2 Blue LED Backlight
Ho realizzato un video in cui puoi vedere i valori rilevati da arduino alla pressione dei 5 pulsanti: