Librería liquidcrystal para arduino

18/05/2000

La librería LiquidCrystal es una herramienta fundamental para cualquier persona que trabaje con pantallas LCD en proyectos con Arduino. Esta librería facilita la interacción con estas pantallas, permitiendo mostrar texto, números y otros caracteres de forma sencilla. En este artículo, exploraremos a fondo su funcionamiento, incluyendo la variante LiquidCrystal_I2C, que simplifica aún más el proceso de conexión.

Temario

¿Qué hace la librería LiquidCrystal?

La librería LiquidCrystal proporciona un conjunto de funciones que abstraen la complejidad de la comunicación con una pantalla LCD. En lugar de lidiar directamente con los registros y señales de la pantalla, la librería ofrece un interfaz intuitivo que permite controlar aspectos como:

  • Inicialización de la pantalla: Define el número de filas y columnas de la pantalla.
  • Escritura de texto: Permite enviar texto a la pantalla, incluyendo caracteres especiales.
  • Control del cursor: Permite posicionar el cursor en cualquier posición de la pantalla para controlar dónde se escribe el siguiente texto.
  • Borrado de la pantalla: Limpia la pantalla, eliminando todo el contenido existente.
  • Control de la retroiluminación (backlight): En algunas pantallas, permite controlar la intensidad o encendido/apagado de la retroiluminación.

LiquidCrystal_I2C: Simplificando la Conexión

La librería LiquidCrystal_I2C es una extensión de la librería LiquidCrystal que facilita la conexión de pantallas LCD a Arduino utilizando el protocolo I2C. I2C reduce la cantidad de pines necesarios para conectar la pantalla, lo cual es especialmente útil cuando se trabaja con proyectos que requieren muchos componentes.

Para usar LiquidCrystal_I2C necesitas un backpackI2C para tu pantalla LCD. Este backpackse encarga de traducir las señales I2C a las señales que la pantalla entiende. Su uso simplifica significativamente el cableado, pues solo necesitas dos pines (SDA y SCL) para la comunicación.

Inclusión de las Librerías

Para utilizar LiquidCrystal_I2C, debes incluir las librerías necesarias al comienzo de tu código Arduino:

libreria liquidcrystal arduino - Qué hace la librería LiquidCrystal

#include <LCD.h>
#include <LiquidCrystal_I2C.h>

Creación del Objeto LCD

Luego, se crea un objeto LiquidCrystal_I2C. La función constructora requiere varios argumentos, incluyendo la dirección I2C de la pantalla:

LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

El primer argumento (0x3f en este ejemplo) es la dirección I2C de la pantalla. Es crucial encontrar la dirección correcta de tu pantalla. Para ello, puedes usar un scannerI2C, como el que se describe más adelante.

Métodos Principales de LiquidCrystal_I2C

La librería ofrece varios métodos útiles para controlar la pantalla:

  • lcd.begin(x, y) : Inicializa la pantalla con x columnas e y filas.
  • lcd.clear() : Borra el contenido de la pantalla.
  • lcd.print(var) : Imprime una variable (String o número) en la pantalla.
  • lcd.setCursor(x, y) : Posiciona el cursor en la columna x y la fila y (comenzando desde 0).
  • lcd.home() : Mueve el cursor a la posición (0, 0).

Ejemplo de Uso

Aquí hay un ejemplo simple que muestra cómo usar LiquidCrystal_I2C para imprimir un mensaje en la pantalla:

libreria liquidcrystal arduino - Qué es la biblioteca liquidcrystal_i2c

#include <LCD.h>
#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);void setup() { lcd.begin(16, 2); // Inicializa la pantalla (16 columnas, 2 filas) lcd.clear(); // Borra la pantalla lcd.setCursor(0, 1); // Posiciona el cursor en la segunda fila lcd.print("Hola Mundo!"); // Imprime el mensaje}void loop() { // El bucle principal no hace nada en este ejemplo}

Scanner I2C para Encontrar la Dirección de la Pantalla

Para encontrar la dirección I2C de tu pantalla LCD, necesitas un scannerI2C. A continuación, se proporciona un ejemplo de código para un scannerI2C:

#include <Wire.h>void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Espera a que el monitor serial esté listo Serial.println("Escáner I2C");}void loop() { byte error, address; int nDevices; Serial.println("Escaneando..."); nDevices = 0; for (address = 1; address < 127; address++) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("Dispositivo I2C encontrado en la dirección 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println("!"); nDevices++; } else if (error == 4) { Serial.print("Error desconocido en la dirección 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No se encontraron dispositivos I2C"); else Serial.println("Listo"); delay(5000); // Espera 5 segundos antes del siguiente escaneo}

Este código escanea las direcciones I2C del 1 al 127 y muestra en el monitor serial aquellas direcciones que responden. La dirección de tu pantalla LCD será una de las que se muestran.

Tabla Comparativa: LiquidCrystal vs. LiquidCrystal_I2C

Característica LiquidCrystal LiquidCrystal_I2C
Conexión Requiere varios pines de datos Utiliza solo dos pines I2C (SDA y SCL)
Complejidad Mayor complejidad de cableado Menor complejidad de cableado
Número de pines Más pines Menos pines
Flexibilidad Puede ser más flexible en algunos casos Menos flexible en la elección de la pantalla
Librerías necesarias LiquidCrystal LiquidCrystal y LiquidCrystal_I2C

Consultas Habituales sobre LiquidCrystal y LiquidCrystal_I2C

A continuación, se responden algunas de las preguntas más frecuentes relacionadas con estas librerías:

  • ¿Qué pasa si la pantalla no se inicializa correctamente? Verifica la conexión, la dirección I2C y la inicialización de la pantalla. Asegúrate de que la librería esté correctamente incluida y que los parámetros de la función begin() sean correctos.
  • ¿Cómo mostrar caracteres especiales? Algunas pantallas LCD admiten caracteres especiales. La forma de mostrarlos depende del tipo de pantalla. Consulta la documentación de la pantalla para ver cómo definir los caracteres especiales.
  • ¿Cómo controlar la retroiluminación? La manera de controlar la retroiluminación varía según el modelo de la pantalla y el backpack I2C utilizado. Consulta la documentación de tu hardware específico para obtener instrucciones detalladas.
  • ¿Puedo usar LiquidCrystal_I2C con cualquier pantalla LCD? No, solo puedes usar LiquidCrystal_I2C con pantallas LCD compatibles con I2C. Asegúrate de que tu pantalla LCD tenga un backpack I2C.

Este artículo proporciona una visión general de las librerías LiquidCrystal y LiquidCrystal_I2C para Arduino. Con la información proporcionada, podrás comenzar a usar estas librerías para crear proyectos innovadores que involucren pantallas LCD.

Si quieres conocer otros artículos parecidos a Librería liquidcrystal para arduino puedes visitar la categoría Libros y Librerías.

Subir