Cómo Controlar una LCD con I2C, Tutorial controla un LCD con solo dos pines tarjeta I2C
En este tutorial aprenderemos a usar el Módulo adaptador LCD a I2C, lo que nos permitirá controlar una pantalla LCD alfanumérica usando solo dos pines de Arduino.
Este tutorial es similar al que explica cómo conectar un LCD1602 y LCD2004 a un Arduino, con la diferencia de que aquí utilizaremos un adaptador LCD a I2C. Realizaremos algunos ejercicios para mostrar que el uso del módulo adaptador es tan sencillo como trabajar directamente con el LCD.
Hardware del Módulo adaptador LCD a I2C
El módulo adaptador LCD a I2C que utilizaremos está basado en el controlador I2C PCF8574, que actúa como un expansor de entradas y salidas digitales controlado mediante I2C. Este módulo está diseñado específicamente para manejar pantallas LCD alfanuméricas.
La dirección I2C predeterminada del módulo suele ser 0x3F o, en algunos casos, 0x27. Es crucial identificar correctamente esta dirección, ya que si no se hace, el programa no funcionará adecuadamente. Para determinar la dirección I2C del módulo, podemos utilizar un pequeño programa de prueba llamado “I2C Scanner”, que permite identificar la dirección del dispositivo conectado al Arduino.
Si es necesario usar más de una pantalla LCD, podemos cambiar la dirección I2C del adaptador soldando los puentes A0, A1 y A2 que se encuentran en el módulo. Estos puentes representan los bits menos significativos de la dirección I2C. Por ejemplo, la dirección 0x3F en binario es 0|0|1|1|1|A2|A1|A0, mientras que 0x27 sería 0|0|1|0|0|A2|A1|A0. De manera predeterminada, A0, A1 y A2 tienen el valor 1, pero si se sueldan los puentes, se conectan a tierra y pasan a tener el valor 0. Si se sueldan los tres puentes, la nueva dirección sería 0x20 (0|0|1|0|0|0|0|0) para un chip que originalmente tenía la dirección 0x27.
Fuente: naylampmechatronics.com
Para controlar el contraste de los dígitos en el LCD solo necesitamos girar el potenciómetro que se encuentra en el módulo, hasta quedar conformes con el contraste mostrado.
La luz de fondo se controla principalmente por software desde el Arduino, pero el módulo también permite desconectar el Led de la luz de fondo removiendo un jumper LED.
Conexiones entre Arduino y Módulo adaptador LCD a I2C
El adaptador LCD a I2C tiene los pines ordenados para conectar directamente al LCD, esto lo podemos hacer a través de un protoboard o soldando directamente al LCD.
Para conectar con el modulo con el Arduino solo utilizamos los pines I2C del Arduino (SDA y SCL) y alimentación (GND y 5V), los pines I2C varían de acuerdo al modelo de Arduino con el que trabajemos, en la siguiente tabla podemos ver cuales son los pines I2C para cada modelo de Arduino.
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 |
Librería LiquidCrystal_I2C para Arduino
Existen diferentes tipos y versiones de librerías para trabajar con el módulo Adaptador LCD a I2C, información más completa pueden encontrar en: http://playground.arduino.cc/Code/LCDi2c , nosotros usaremos la librería LiquidCrystal_I2C
Las funciones que utiliza esta librería son similares a la librería LiquidCrystal de Arduino, revisaremos las funciones principales:
LiquidCrystal_I2C(lcd_Addr, lcd_cols, lcd_rows)
Función constructor, crea un objeto de la clase LiquidCrystal_I2C, con dirección, columnas y filas indicadas.
init()
Inicializa el modulo adaptador LCD a I2C, esta función internamente configura e inicializa el I2C y el LCD.
clear()
Borra la pantalla LCD y posiciona el cursor en la esquina superior izquierda (posición (0,0)).
setCursor(col, row)
Posiciona el cursor del LCD en la posición indicada por col y row(x,y); es decir, establecer la ubicación en la que se mostrará posteriormente texto escrito para la pantalla LCD.
print()
Escribe un texto o mensaje en el LCD, su uso es similar a un Serial.print
scrollDisplayLeft()
Se desplaza el contenido de la pantalla (texto y el cursor) un espacio hacia la izquierda.
scrollDisplayRight()
Se desplaza el contenido de la pantalla (texto y el cursor) un espacio a la derecha.
backlight();
Enciende la Luz del Fondo del LCD
noBacklight();
Apaga la Luz del Fondo del LCD
createChar (num, datos)
Crea un carácter personalizado para su uso en la pantalla LCD. Se admiten hasta ocho caracteres de 5×8 píxeles (numeradas del 0 al 7). Dónde: num es el número de carácter y datos es una matriz que contienen los pixeles del carácter. Se verá un ejemplo de esto más adelante.
Ahora que hemos repasado la librería veamos algunos ejemplos:
Ejemplo 1.
Un Hola mundo con Arduino y LCD
Descarga libreria aqui>> LiquidCrystal_I2C
Mostraremos texto y un valor numérico en el LCD, para esto cargamos el siguiente sketch:
Opción 2: Una forma alternativa es hacerlo de la siguiente forma:
Descarga Hola_Mundo_I2C (compatible con Arduino)
Después de cargar, en su LCD deben obtener el siguiente resultado
Nota: En este tutorial es basado en el la página naylampmechatronics.com , se utiliza la información solo con fines educativos.
Fuente Color Código: https://www.htmlinstant.com/