Display 16x2 con collegamento I2C
Il display 16×2 (collegato al connettore X4) è messo in comunicazione al microcontrollore tramite un modulo d'interfaccia I²C, che con sole 2 linee di comunicazione ( AD4 e AD5) ne permette il controllo tramite interfaccia I²C.
L'I²C è un Bus bidirezionale di tipo seriale-Multi Master in cui più dispositivi possono assumere il controllo del Bus. La trasmissione dei dati avviene, come accennato, per mezzo di due sole linee denominate rispettivamente SDA (Serial Data pin AD4) e SCL (Serial Clock pin AD5). Sulla prima viaggiano effettivamente i Bit d'informazione che microcontrollore e Display si scambiano; sulla seconda linea viaggia il segnale di Clock, generato sempre ed esclusivamente da un Master, il cui scopo è quello di sincronizzare i dispositivi stabilendo la validità e il significato dei Bit presenti sulla linea dati.
La libreria LiquidCrystal_I2C.h
Operativamente si fa uso della libreria LiquidCrystal_I2C.h che è necessario aver caricato nell'IDE di Arduino; con queste librerie è possibile gestire tutta la comunicazione.
Per includere la libreria nell'IDE di sviluppo di Arduino è sufficiente utilizzare il Gestore Library (disponibile da IDE versione 1.6.2). Aprire l'IDE e fare clic sul menu "Sketch” e poi: #include libreria > Gestione librerie... . Si aprirà una finestra di dialogo che come prima opzione avrà "gestione librerie". Cliccare su tale opzione e cercare "LiquidCrystal". Se non è installata, scegliere la versione (senza dubbio è meglio la più recente) e successivamente cliccare sul tasto "installa".
Se non è disponibile la libreria dalla stessa finestra di dialogo è possibile specificare il file .zip contenete la libreria da installare. N.B. Nel caso vi siano aggiornamenti, l'IDE automaticamente vi informerà e chiederà se si vogliono installare o meno.
Ulteriori informazioni sull'uso della libreria sono reperibili in https://github.com/marcoschwartz/LiquidCrystal_I2C.
Prova del display
I collegamenti da effettuare tra Arduino e il display sono evidenziati in figura
Si utilizzano (ma non è necessario) i piedini A4 e A5 ai quali sono collegati rispettivamente i terminali SDA e SCL del bus I2C. Gli stessi pin sono disponibili anche nel lato opposto della scheda:
I collegamenti sono quelli indicati in tabella:
ARDUINO | MODULO DISPLAY |
GND | GND |
5V | VCC |
A4 (SDA) | SDA |
A5 (SCL) | SCL |
Nella prova si suppone di avere un display con indirizzo preprogrammato 0x27 da 20 caratteri per 4 linee.
N.B.: Alcune tipologie di display escono dalla fabbrica con un'impostazione della luminosità dei caratteri sbagliata e per questo non risultano visibili. Se una volta caricato lo sketch il display si spegne e si riaccende, ma non appare nessun carattere, è necessario agire sul potenziometro posizionato nella parte posteriore (visibile in figura) per regolare la luminosità dei caratteri.
Sketch da caricare nell'Arduino
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3f,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display void setup() { lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); lcd.setCursor(3,0); lcd.print("Hello, world!"); lcd.setCursor(0,1); lcd.print("Ciao, Mondo!"); lcd.setCursor(7,2); lcd.print("Prova display"); lcd.setCursor(7,3); lcd.print("Be Fun!"); } void loop() { }