Hace mucho que me compré un adaptador I2C para pantallas LCD y hoy por fin lo he probado, el adaptador está basado en el micro PCF8574T y tiene dos conectores, el tradicional de 16 pines en linea para conectar la LCD y los 4 del conector I2C, tambien posee un jumper para habilitar la luz de fondo (que se puede apagar/encender por software) y un potenciometro para regular la luz de los caracteres.
Para probarlo he usado una pantalla LCD con luz azul de 2 lineas por 16 caracteres cada una.
Como en ambos tengo montados pines macho he montado todo sobre una protoboard, solo tener en cuenta que los pines esté correctamente alineados, contad con que el pin 1 es GND que es facil de localizar.
El montaje completo incluyendo las conexiones I2C:
El código fuente:
// ********************************************************************
// ********************************************************************
/* Demostracion de modulo adaptador I2C LCD
basado en PCF8574T */
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
void setup()
{
lcd.begin (16,2); // activamos modulo 16×2
lcd.setBacklightPin(3,POSITIVE);
lcd.home (); // igual que lcd.setCursor(0,0);
lcd.print(» furrichip «);
lcd.setBacklight(LOW); // Apagar luz de fondo
delay(500);
lcd.setBacklight(HIGH); // Encender luz de fondo
delay(500);
lcd.setBacklight(LOW); // Apagar luz de fondo
delay(500);
lcd.setBacklight(HIGH); // Encender luz de fondo
delay(500);
}
void loop()
{
lcd.setCursor (4,1); // empezamos en la segunda linea fila 4
lcd.print(millis());
delay(100);
}
// ********************************************************************
// ********************************************************************
La libreria LiquidCrystal he usado esta:
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Solo me queda mencionar que en caso de necesidad podeis cambiar la dirección I2C del adaptador (0x27 por defecto) puenteando los pads A0, A1 y A2, dichos pads están en modo pull-up por lo que su valor lógico es «1», al puentearlos cambiamos dicho valor a «0» y usando la siguiente tabla podemos ajustar la dirección a nuestras necesidades:
Enlaces de interes:
Datasheet PCF8574 de Texas Instruments
Datasheet PCF8574 de NXP
Tutorial PCF8574 en ingles