Ciao a tutti, ecco a voi un altro articolo che riguarda il display Display LCD I2C.
In questo tutorial mostrerò come comandare un display LCD con Arduino tramite il protocollo seriale I2C molto utile per coloro che vogliono evitare di occupare 6 PIN digitali su Arduino oppure complessi collegamenti. Il tutto si basa sull’integrato PCF8574T.
Video
Lista dei componenti
- Un Aduino
- Un Display LCD con un PCF8574T in versione breakout come quella che utilizzo in questo articolo.
Di seguito alcuni Display LCD con PCF8574T compatibili con gli sketch in questo articolo:
Se invece avete intenzione di costruivi da soli tutto il circuito (molto semplice) per gestire il PCF8574T vi serviranno questi componenti:
- PCF8574T
- Transistor NPN 2N2222
- 2 Resistenze da 10 k
- 1 Resistenza da 2.2 k
- 1 Resistenza da 470
- 1 Trimmer potenziometro da 10 k
- 1 Condensatore da 100 nF (va bene anche in poliestere o in MLCC)
Ecco lo schema da seguire:
Se invece avete una breakout con il PCF8574T dovete collegarla al display lcd così come mostrato nella seguente foto.
Ora bisogna collegare il PCF8574T ad Arduino tramite I2C quindi andremo ad utilizzare i pin SDA e SCL presenti sulla board Arduino. Ecco una tabella con i rispettivi pin SDA e SCL delle board Arduino più utilizzate.
Board | I2C / TWI pins |
Uno, Ethernet | A4 (SDA), A5 (SCL) |
Mega2560 | 20 (SDA), 21 (SCL) |
Leonardo | 2 (SDA), 3 (SCL) |
Due | 20 (SDA), 21 (SCL), SDA1, SCL1 |
Collegamenti
PCF8574T | ARDUINO |
SDA | SDA |
SCL | SCL |
VCC | +5V |
GND | GND |
Dopo aver effettuato tutti i collegamenti ad Arduino è ora di passare alla programmazione. 😀
Innanzitutto dovete scaricare la libreria da QUI e copiarla in Documenti\Arduino\libraries\ …
Aprite l’IDE Arduino e caricate lo sketch seguente.
Sketch
// Giuseppe Caccavale // www.giuseppecaccavale.it #include <Wire.h> #include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { // initialize the LCD lcd.begin(); // Turn on the blacklight and print a message. lcd.backlight(); lcd.setCursor(2, 0); lcd.print("Ciao Ragazzi"); lcd.setCursor(6, 1); lcd.print("(GC)"); } void loop(){ // Do nothing here... }
Come vedere dal codice, le istruzioni da utilizzare sono le stesse della classica libreria LiquidCrystal.