viernes, 27 de diciembre de 2013

Arduino Display I2C

Tras probar varios codigos que me he encontrado por internet, finalmente me he encontrado con este blog gacias al cual he podido aprender a manejar el display I2C:

http://blog.gotencool.com/2012/03/arduino-lcd-via-i2c.html

Arduino + LCD vía I2C

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):


Código:
#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);
}

2 comentarios:

  1. Hola:
    Mi problema es que he copiado tu codigo y en la pantalla lcd solo me sale la "P" pero el resto del texto no sale.¿Me podrias decir cual es el problema?.
    Tengo un arduino mega y la pantalla es de 20*4.
    Gracias por adelantado y decirte que tu codigo me esta ayudando mucho a la hora de practicar.
    Un sludo Pedro.

    ResponderEliminar
  2. Hola probablemente tengas que poner en esta linea LiquidCrystal_I2C lcd(0x27,16,2); La dirección y los datos correspondientes a tu display que probablemente sean LiquidCrystal_I2C lcd(0x27,20,4).

    Mira este post del foro de arduino que te puede servir de referencia:
    https://forum.arduino.cc/index.php?topic=304120.0

    ResponderEliminar