Arduino + LCD vía I2C

Publicado el Fri 23 March 2012

Hace una semana me llegó un display LCD 16x2 con interfaz de conexión i2c, no había tenido oportunidad de probarlo hasta hace unos días.

La gracia de este LCD está en la interfaz, que requiere sólo 4 pines:

  • Vcc (+5V)
  • GND
  • SDA (TX Data)
  • SCL (RX Data)

La comunicación de datos se efectúa mediante i2c, el que emplea un bus de comunicación de dos cables, los que alimentan y comunican dispositivos identificados por una dirección física. El bus permite velocidades entre 100Kbits/s a 400Kbits/s y la transmisión de datos se efectúa en palabras de 8bits.

Para conectar el LCD al Arduino se debe emplear los pines 4 y 5 para SDA y SCL respectivamente. Las conexiones quedarían así:

Finalmente, una vez que hemos efectuado las conexiones debemos cargar algún programa (se requiere la librería LiquidCrystal_I2C):

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); // 0x27 es la direccion del LCD 16x2

void setup(){
    lcd.init(); 
    lcd.backlight(); //enciende la iluminacion
    lcd.setCursor(0, 0);
    lcd.print("Probando i2c");
}

void loop(){
    delay(1000);
}