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:



Il blog mauroalfieri.it ed i suoi contenuti sono distribuiti con Licenza