Automazione, parte seconda: gestione LCD.

E’ facile valutare l’impatto di un LCD collegato alla scheda microcontroller: da un dispositivo muto, privo di riscontri, si passa ad una situazione nettamente migliore, sia in termini di  controllo che di debug, infatti si possono visualizzare messaggi di stato, avvisi ed errori.

L’utilizzo di LED risulta  meno vantaggioso per la richiesa di un pin per LED, la fatica di allestire, una densità informativa drammaticamente inferiore.

Dotati di fresa tipo Dremel, meglio se del traforo elettrico,

procediamo al taglio rettangolare sulla scatola di policarbonato ad uso elettrico, per l’incastro del display. Studieremo il miglior fissaggio.

 

Scegliamo un LCD di fattura minima, di ampia diffusione, con una libreria per Arduino pronta ed  collaudata.

Potremmo scegliere tra dispositivi a caratteri, grafici, seriali, paralleli ed I2C. Optiamo per il classico due righe a caratteri con controllo parallelo ad 8 o 4 bit.

Scegliamo il fondo blu con scritta bianca, perchè più gradevole.

Il produttore Crystal Clear Technology propone il modello C216W01NBN00, 2 righe di 16 caratteri, Controller/Driver ST7066U-0A-B e ST7065C-B o equivalente, fondo blu con scritta bianca, costa poco, e per ora ci convince.

 

La libreria Arduino da utilizzare è la classica LiquidCrystal  con il controllo del LCD 4-bit mode.

 

L’utilizzo è immediato, rimandiamo alle pagine di guida ufficiale del dsito Arduino per apprenderne l’utilizzo.

Per ora utilizziamo i pin in modo canonico,  come proposto dalla libreria, riservarndoci ad una futura razionalizzazione.

 

 

Il potenziometro da 10K verrà sostituito, per compattezza, da una resistenza.

Per una corretta visualizzazione ricordarsi di collegare a massa ed a +5 VDC i pin di backlight del display.

In futuro utilizzeremo anche un LCD con luce di fondo RGB per potre cambiare i colori, per esempio verde o blu per funzionamento normale, arancio per avvisi, rosso per errori.

Integriamo il firmware con le variabili globali:

LCDpresent

LCDactive

LCDdebug

ed i primi comandi:

LCDactive on|off

 LCDdebug on|off

LCDprint string

Naturalmente il programma per Arduino diventa piuttosto esteso, ma nella seconda fase verrà generato in automatico, e quindi il codice conterrà lo stretto necessario, raggiungendo la compattezza ideale.