Display LCD I2C (PCF8574T) Arduino

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:

PCF8574T_circuit

Se invece avete una breakout con il PCF8574T dovete collegarla al display lcd così come mostrato nella seguente foto.

IMG_1914

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.

BoardI2C / TWI pins
Uno, EthernetA4 (SDA), A5 (SCL)
Mega256020 (SDA), 21 (SCL)
Leonardo2 (SDA), 3 (SCL)
Due20 (SDA), 21 (SCL), SDA1, SCL1

Collegamenti

PCF8574T ARDUINO
SDASDA
SCLSCL
VCC+5V
GNDGND

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.