22/05/1999
Este artículo proporciona una tutorial exhaustiva sobre el uso de la librería LiquidCrystal_I2C para controlar pantallas LCD con Arduino. Aprenderás los comandos esenciales, cómo conectar el hardware, y explorarás ejemplos prácticos para mostrar texto, datos de sensores y caracteres personalizados.
Qué es la Librería LiquidCrystal_I2C?
La librería LiquidCrystal_I2C es una herramienta fundamental para la interacción entre tu placa Arduino y una pantalla LCD alfanumérica a través de la interfaz I2C. Esto simplifica la conexión, ya que solo necesitas dos pines de tu Arduino (SDA y SCL) para la comunicación, en lugar de los múltiples pines requeridos por la conexión paralela tradicional. Esta librería facilita el manejo de pantallas LCD1602 y LCD2004, entre otras.
Hardware Necesario
Para comenzar, necesitarás lo siguiente:
- Una placa Arduino (Uno, Nano, Mega, etc.)
- Una pantalla LCD alfanumérica (16x2 o 20x4)
- Un módulo adaptador LCD a I2C (basado en el controlador PCF8574)
- Cables de conexión (cables Dupont)
Módulo Adaptador LCD a I2C
El módulo adaptador LCD a I2C es clave para la simplicidad de este método. Se basa en el chip PCF8574, un expansor de E/S que facilita la comunicación I2C con el LCD. Es importante destacar que la dirección I2C por defecto suele ser 0x3F o 0x27, pero puede variar. Puedes usar un I2C Scanner para determinar la dirección correcta de tu módulo. La dirección I2C se puede modificar mediante puentes (A0, A1, A2) en el módulo.
Conexión Arduino y Módulo LCD a I2C
La conexión es sencilla: solo necesitas conectar los pines GND, 5V, SDA y SCL del módulo al Arduino. La tabla siguiente muestra la asignación de pines para diferentes modelos de Arduino:
| Adaptador LCD a I2C | Arduino Uno, Nano, Mini | Arduino Mega | Arduino Leonardo |
|---|---|---|---|
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | 20 | 2 |
| SCL | A5 | 21 | 3 |
Recuerda que las conexiones para LCD 20x4 son las mismas.
Instalación de la Librería
Para utilizar la librería LiquidCrystal_I2C, debes instalarla en tu entorno de desarrollo Arduino IDE. Puedes hacerlo a través del Administrador de Librerías del IDE buscando "LiquidCrystal_I2C".
Funciones Principales de la Librería
La librería LiquidCrystal_I2C ofrece una serie de funciones para controlar la pantalla LCD. A continuación se detallan algunas de las más importantes:
- LiquidCrystal_I2C(lcd_Addr, lcd_cols, lcd_rows) : Constructor de la clase.
lcd_Addres la dirección I2C del módulo,lcd_colsel número de columnas ylcd_rowsel número de filas de la pantalla. - init() : Inicializa el LCD y el módulo I2C.
- clear() : Borra el contenido de la pantalla.
- setCursor(col, row) : Posiciona el cursor en la columna
coly la filarow(comenzando en 0). - print() : Imprime texto en la pantalla.
- scrollDisplayLeft() : Desplaza el texto hacia la izquierda.
- scrollDisplayRight() : Desplaza el texto hacia la derecha.
- backlight() : Enciende la retroiluminación del LCD.
- noBacklight() : Apaga la retroiluminación del LCD.
- createChar(num, datos) : Crea un carácter personalizado.
numes el número del carácter (0-7) ydatoses un array de 8 bytes que define la forma del carácter.
Ejemplos de Código
Ejemplo 1: Hola Mundo
#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3F, 16, 2);void setup() { lcd.init(); lcd.backlight(); lcd.print("Hola Mundo");}void loop() { lcd.setCursor(0, 1); lcd.print(millis()/1000); lcd.print(" Segundos"); delay(100);}Ejemplo 2: Desplazamiento de Texto
#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3F, 16, 2);void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(10, 0); lcd.print("Ejemplo Desplazamiento");}void loop() { lcd.scrollDisplayLeft(); delay(500);}Ejemplo 3: Lectura y visualización de datos de sensores
(Este ejemplo requiere la conexión de sensores analógicos)
#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3F, 16, 2);void setup() { lcd.init(); lcd.backlight();}void loop() { int sensorValue = analogRead(A0); lcd.setCursor(0, 0); lcd.print("Sensor:"); lcd.print(sensorValue); delay(200);}Ejemplo 4: Caracteres Personalizados
#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3F, 16, 2);byte customChar[8] = {B00100, B01110, B11111, B01110, B00100, B00000, B00000, B00000};void setup() { lcd.init(); lcd.backlight(); lcd.createChar(0, customChar); lcd.setCursor(0,0); lcd.write(byte(0));}void loop() {}Consultas Habituales
Aquí se responden algunas de las consultas más frecuentes sobre el uso de la librería LiquidCrystal_I2C :
- ¿Cómo determinar la dirección I2C del módulo? Utiliza un I2C Scanner para identificar la dirección del módulo.
- ¿Qué ocurre si la dirección I2C es incorrecta? El programa no funcionará correctamente. El LCD no responderá.
- ¿Puedo usar esta librería con LCDs de diferentes tamaños? Sí, la librería es compatible con LCDs 16x2 y 20x4 y otros tamaños, ajustando los parámetros del constructor.
- ¿Cómo controlar el contraste del LCD? El contraste se ajusta mediante un potenciómetro ubicado en el propio módulo adaptador.
- ¿Cómo controlar la retroiluminación? Se controla mediante las funciones
backlight()ynoBacklight()de la librería.
Este artículo proporciona una base sólida para comenzar a trabajar con pantallas LCD y Arduino usando la librería LiquidCrystal_I2C. Recuerda consultar la documentación completa de la librería para explorar todas sus funcionalidades. La práctica y la experimentación son esenciales para dominar este tema. ¡Experimenta y crea tus propios proyectos!
Si quieres conocer otros artículos parecidos a Comandos librería lcd arduino puedes visitar la categoría Libros y Librerías.
