Arduino lcd i2c


Arduino lcd i2c es un modulo que permite conectar esta pantalla al ahorrándonos varios pines para esta comunicación

oscar Escrito por oscar 27 February 2021 31829 0

Acerca del proyecto

En este post vamos a conocer le modulo lcd i2c conectado a Arduino, este mismo proyecto lo trabajamos en post pasados donde conectamos el modulo lcd directamente al controlador, pero con este adaptador vamos a tener un ahorro de pines ya que trabaja con el protocolo ic2 para la comunicación y de 7 pines que usamos en la conexión directa, vamos a reducir a solo 2 pines.

Vamos a a perder a usar este modulo y conocer la librería creada en arduino para poder controlarlo, conoceremos como configurar la comunicación i2c que permitirá realizar la programación del modelo sin tanta complicación

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
LCD 2x16 Display LCD de 16 caracteres x 2 lineas. Posee el controlador SPLC780D1 o equivalente (como HD44780), el más usado en este tipo de dispositivo. Backlight azul.
Arduino lcd 2x16 En este post vamos a ver un ejercicio sencillo de arduino lcd 2x16 en donde veremos lo que se puede visualizar en 2 filas y 16 columnas, además de mostrar letras y números.
Arduino lcd 2x16 Vamos a conocer el módulo interfaz para la pantalla LCD donde podremos utilizar solamente dos Pines para la comunicación entre cualquier microcontrolador y esta pantalla. En este post veremos sus principales características la forma de la conexión y y como conocer y utilizar el direccionamiento del bus i2c.
LiquidCrystal i2c Conoceremos la librería con la que trabajaremos el modulo lcd i2c conectado al arduino, esta librería esta diseñada solo para el entorno de adruino; veremos cuales son las funciones, métodos que podemos usar para escribir mensajes en este tipo de pantallas.

Modulo lcd i2c

La pantalla LCD de 16×2 basada en el controlador HD44780 de Hitachi es un periférico muy común, el problema es que este tipo de pantalla requiere muchos pines del microcontrolador para ser controlada, por esto se crea un adaptador basado en el PCF8574 que permite conectar la pantalla al arduino usando solamente dos lineas digitales a través del bus I2C. Dichos pines, pueden además ser compartidos por otros periféricos como el RTC o memorias EEPROM ente otros.

Conversor lcd I2C
Conversor lcd I2C

Direcciones de bus del i2c

El módulo de conversión lcd i2c cómo realiza este tipo de comunicación en el bus necesita una dirección para poder acceder a él y enviar la información necesaria para visualizar datos en la pantalla, como vimos anteriormente está basado en el chip PCF8574 el cual dependiendo de la versión del fabricante puede comenzar con una u otra dirección, esto lo podemos identificar con la siguiente tabla:

A0 A1 A2 PCF8574 PCF8574A
0 0 0 0X27 0X3F
0 0 1 0X26 0X3E
0 1 0 0X25 0X3D
0 1 1 0X24 0X3C
1 0 0 0X23 0X3B
1 0 1 0X22 0X3A
1 1 0 0X21 0X39
1 1 1 0X20 0X39

Para el modulo que estamos trabajando, es el PCF8574A, así que usaremos las direcciones correspondientes, por defecto debemos colocar la 0X3F, ya que los pines de dirección se encuentran es un estado lógico 0.

Materiales

Los materiales con los que deben trabajar esta en la siguiente tabla, allí se explican la función de cada uno de ellos

Material Cantidad Descripción
Arduino 1 Controlador del circuito
Modulo lcd 2x16 1 Modulo lcd para visualizar
Modulo lcd i2c 1 Adaptador del lcd 2 x 16
Cables de conexión 4 Cables para conectar los módulos

Circuito

Conexión del modulo al lcd es fácil de realizar, esta diseñado para que coincida con el orden de los pines del modulo con el lcd como podemos ver en la siguiente imagen.

Conversor lcd I2C conexión
Conversor lcd I2C conexión
Conversor lcd I2C conexión lcd
Conversor lcd I2C conexión lcd

Ahora para realizar la conexión desde el modulo al arduino, debemos identificar los pines i2c, a continuación tenemos una tabla con varias placas en donde puede ver que pines debe conectar al modulo.

Adaptador LCD a I2C Arduino Uno, Nano, Mini Arduino Mega , DUE Arduino Leonardo
GND GND GND GND
VCC 5V 5V 5V
SDA A4 20 2
SCL A5 21 3

Código

El código que trabajamos a continuación usa la librería LiquidCrystal_I2C para controlar la pantalla por medio del protocolo y comunicación i2c, vamos a explicar paso a paso su funcionamiento.

Para mas detalles del manejo de la librería, puede guiarse en el post LiquidCrystal i2c donde explicamos todos sus métodos.

// Paso 1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Paso 2
LiquidCrystal_I2C lcd(0x3F,16,2);

void setup() {
    // Paso 3
    lcd.init();
    
    // Paso 4
    lcd.backlight();
    
    // Paso 5
    lcd.setCursor(0,0);
    lcd.print("codigo");
    lcd.setCursor(0,1);
    lcd.print("electronica");
    delay(2000);
    lcd.clear();
}

void loop() {
    lcd.setCursor(0, 1);
    lcd.print(millis()/1000);
    lcd.print(" Segundos");
    delay(100);
}
  1. Cargamos las librerías, en este caso necesitamos a Wire de primeras para poder hacer la comunicación i2c.
  2. Creamos el objeto lcd de la librerías donde indicamos la dirección donde se encuentra el modulo en la comunicación i2c, ademas de la cantidad de filas y columnas.
  3. Inicializamos el lcd con los parámetros configurados de la dirección, filas y columnas.
  4. Indicamos que vamos a trabajar con el backlight.
  5. Ahora decimo que con setCursor indicamos que empiece a escribir desde la coliman cero a la fila cero, con print colocamos el mensaje y por ultimo clear, es quien limpia la pantalla.

Comentario

Debe aceptar antes de enviar