Lo scopo di questo articolo è quello di dimostrare come utilizzando i ns sistemi SlimLine (Anche in versione OEM) sia possibile ingegnerizzare sistemi custom abbinando moduli commerciali dotati di interfaccia I2C. Su Internet troverete una infinità di moduli per le più svariate necessità a costi relativamente bassi, molti di questi prodotti vengono pubblicizzati per interfacciamento con Arduino o Raspberry.
Utilizzando la funzione SysI2CWrRd è possibile collegare al bus di espansione dei ns sistemi SlimLine qualsiasi dispositivo con interfaccia I2C, SlimLine provvede anche a generare i 5Vdc di alimentazione del dispositivo. Vediamo come collegando all’interfaccia parallela del modulo LCD QC2004A (Basato su controller Hitachi HD44780U) una scheda interfaccia I2C sia possibile gestire un display da 4 righe da 20 caratteri.
Function block “I2CLCDDisplay”
Questo blocco funzione gestisce una scheda I2C di interfaccia display che si basa sull’integrato PCF8574P, un’espansione di I/O a 8 bit su bus I2C. L’alimentazione è da 3 a 5V e l’indirizzo I2C di default è 16#27. Sulla scheda troviamo
- Un indicatore LED.
- Un potenziometro per il controllo del contrasto.
- Un ponticello per l’abilitazione al comando della retroilluminazione.
- Ponticelli per la configurazione indirizzo sul bus I2C.
La gestione è suddivisa in sequenze non potendo acquisire il segnale di display occupato, viene effettuata una temporizzazione tra le varie sequenze. La scheda interfccia gestisce solo 4 bit del bus quindi tutti i comandi sono suddivisi su due nibbles da 4 bits ciascuno.
Per il passaggio dei dati da visualizzare sul display si utilizza il buffer DData dichiarato come matrice da 4 righe da 21 bytes. Si è scelta la dichiarazione a matrice prchè nell’utilizzo permette di suddividere il testo nelle 4 righe del display potendole gestire indipendentemente. E’ stata dichiarata una lunghezza di 21 bytes (Mentre il display ha solo 20 colonne) per lasciare lo spazio al dato 16#00 di terminazione stringa.
LogicLab (Mdp238, I2CLCDDisplay)
Programma di esempio
In questo programma viene istanziato il FB di gestione display, e viene gestita la visualizzazione dei messaggi. Alla attivazione è visualizzato un messaggio di benvenuto, poi dopo una temporizzazione si visualizza il messsaggio con data/ora.