#2 Arduino librerie: LiquidCrystal

Come usare la libreria liquidCrystal per i display lcd compatibili

In una lezione precedente ed in un tutorial precedente, abbiamo visto come montare e come far funzionare un display LCD con Arduino, oggi vedremo cosa ci premette di fare la libreria da includere negli sketch ed i vari comandi ad essa collegata.

Prima di iniziare vi riporto qui sotto i link dei precedenti post in cui spiego come collegare un display lcd 16×2 ad Arduino, ed un tutorial su come farlo funzionare.

La libreria consente ad Arudino di comunicare con un display LCD con chipset HD44780 o compatibile, fino al momento della creazione di questo post, la libreria risulta compatibile con tutte le architetture di Arduino.

Per attivare la libreria, occorre prima installarla sui Arduino IDE, per farlo è molto semplice:

Dopo aver aperto il software IDE di Arduino, clicchiamo su Sketch – Include Library – Manage Librearies.

Adesso nella sezione apposita scriviamo il nome della libreria, ed installiamo la prima della lista (alla data della creazione di questo post risulta essere la prima.)

Aspettiamo che venga installata, chiudiamo e riapriamo IDE.

Adesso che la libreria è stata installata, possiamo includerla all’interno dei nostri sketch.

Per includerla all’interno dello sketch, occorre usare il comando #iclude <LiquidCrystal.h>

Successivamente all’inclusione della libreria, va dichiarato il tipo di display usato, che potrà essere da 4 o 8 bit, quindi con 4 o 8 linee dati.

Se usiamo un 4bit non occorre collegare i pin da d0 a d3 ed il pin RW può essere collegato a GND e dovrà essere escluso dalla dichiarazione dei parametri.

Nel caso del display usato nei precedenti post, io ho dichiarato come pin usati, rs, enable, d4, d5, d6, d7.

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);.

Nella sezione void setup, dovremo inserire necessariamente il comando lcd.begin(col, riga);

Dove col indica il numero di caratteri disponibili per riga nel display, mentre riga indica il numero di righe presenti nel display, riferendomi sempre al mio precedente post, usando un display 16×2 avrò il comando lcd.begin(16, 2);.

All’interno di begin, come terzo dato possiamo inserire anche il numero di punti del display per carattere, se omesso Arduino userò quello predefinito (LCD_5x8DOTS).

finiti ci comandi esssenziali per l’inizializzazione del display, passiamo a quelli facoltativi, o meglio a quelli che usiamo in base alle necessità, ricordate che il comando va seguito dalla dicitura lcd, questo indica ad Arduino che è una variabile della libreria Liquid Crystal.

ComandoFunzione
LiquidCrystal(rs, rw, enable, d0, …, d7)

Esempio:
LiquidCrystal lcd( 12, 11, 10, 8, 7, 6, 5);
comando per il controllo del display da 4 o 8 linee dati.
se si utilizza un display a 4 linee, omettere i pin da 0 a 3 e lasciarli scollegati.

rs: il numero del pin di Arduino collegato al pin RS del display.
rw: il numero del pin di Arduino collegato al pin RW del display.
enable: il numero del pin di Arduino collegato al pin ENABLE del display.
d0…..d7: i numeri dei pin di Arduino collegati ai corrispondenti sul display, se i pin da d0 a d3 vengono omessi, il display utilizzerà sono 4 linee (da d4 a d7).
lcd.begin(cols, rows, charsize)

Esempio:
lcd.begin(16, 2);
Inizializza il display e specifica le dimensioni (larghezza, altezza).
Il comando va inserito prima di ogni altro comando.

charsize è un valore opzionale, se omesso il valore predefinito sarà 5×8.
LCD_5x8DOTS (numeri punti del display per carattere 5×8)
LCD_5x10DOTS (numeri punti del display per carattere 5×10
lcd.clear();Cancella il display e posiziona il cursore in alto a sinistra
lcd.home();Posiziona il cursore in alto a sinistra del display
lcd.setCursor(col, riga);

Esempio:
lcd.setCursor (8, 0);
Posiziona il cursore in un punto specifico del display, il punto sarà dato dai valori:
col: la colonna dove posizionare il cursore (si inizia a contare da 0.
riga: la riga in cui posizionare il cursore, la prima riga avrà valore 0.
lcd.write(dati);

Esempio:
lcd.write(“Hobbyeidee”); //scrive una stringa
lcd.write(mills()); //riporta il valore millis sul dipslay ( con valori non leggibili, meglio usare lcd.print())
Invia i dati da scrivere sul display, Arduino invia dati grezzi, a differenza di print, che invia stringhe dati.
Ad esempio:
lcd.write(millis()); Avremo dati non comprensibili
lcd.print(mills()); Avremo un valore comprensibile
lcd.print(dati, base);

Esempio:
lcd.print(“Hobbyeidee”);
oppure
lcd.print(mills(), DEC);
Invia dati da scrivere sul display.
dati: dati da stampare sul display, possono essere sia stringhe, che dati di tipo char, byte, int ecc.
Per le stringhe occorre inserire il testo tra “…”.

dati: cosa stampare (char, byte, int, long o stringa)
base (opzionale): la base in cui stampare i dati:
BIN: binario (base 2), DEC decimale (base 10), OCT ottale (base 8), HEX esadecimale (base 16).
lcd.cursor();Mostra il cursore nel display, nella posizione in cui verrà scritto il dato.
Il cursore avrà la forma di un trattino basso “_”
lcd.noCursor();Nasconde il cursore
lcd.blink();Visualizza il cursore in maniera lampeggiante
lcd.noBlink();Nasconde il cursore lampeggiante.
lcd.display();Accende il display, ripristinando testo e cursore
lcd.noDisplay();Spegne il display, non si perde il testo visualizzato in quel momento.
lcd.srollDisplayleft();Sposta verso sinistra di uno spazio il testo ed il cursore
lcd.scrollDisplayRight();Sprosta verso destra di uno spazio il testo ed il cursore
lcd.autoscroll();Attiva l’auto scroll del display, permettendo ai caratteri non visibili di essere letti sul display.
Se la direzione del testo è da sinistra verso destra, avremo che il testo verrà spostato a sinistra, nascondendo i primi caratteri per poter leggere i caratteri nascosti sulla destra.
lcd.noAutoscroll();Disattiva l’effetto auto scroll
lcd.leftToRight();Imposta la direzione per il testo scritto da sinistra a destra.
Impostazione predefinita
lcd.rightToLeft();Imposta la direzione del testo sul display da destra verso sinistra.
lcd.createChar(num, data)

Esempio:
byte smile[8] ={
B00000,
B10001,
B00000,
B00000,
B10001,
B00000,
};

void setup(){
lcd.createChar(0, smile);
lcd.begin(16, 2);
lcd.write(byte(0));
}
Crea un carattere personalizzato sul display, il comando supporta fino ad otto caratteri di 5×8 pixel.
L’aspetto di ogni carattere è specificato da una matrice di 8 byte, uno per riga.

num: indica quale carattere creare (da 0 a 7)
data: indica i dati dei pixel dei dati.
Se si fa riferimento al carattere personalizzato “0” se questo non è una variabile, occorre indicarlo come byte, altrimenti avremo un errore.

/ 5
Grazie per aver votato!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *