Arduino, librería lcd y sus instrucciones

01/01/1999

Este tutorial profundiza en el uso de pantallas LCD con Arduino, específicamente utilizando la librería LiquidCrystal. Aprenderás desde la conexión básica hasta técnicas avanzadas para mostrar información, caracteres personalizados y manejar el desplazamiento de texto. Ideal tanto para principiantes como para usuarios con experiencia que buscan optimizar su código.

Temario

¿Qué es una Pantalla LCD?

Una pantalla LCD (Liquid Crystal Display) de caracteres es un dispositivo que muestra texto mediante caracteres ASCII de tamaño fijo. Las más comunes son las de 16x2 (16 caracteres por 2 filas), aunque existen otros tamaños (16x1, 16x4, 20x4, etc.). Cada carácter se forma en una matriz de píxeles (usualmente 5x8).

Conexión del LCD a Arduino

Para conectar un LCD 16x2 a Arduino, necesitarás 6 pines digitales. La mayoría de los LCDs usan un modo de 4 bits, lo que simplifica el cableado:

  • RS (Register Select): Selecciona entre enviar comandos o datos. (Pin de Arduino)
  • E (Enable): Habilita la escritura de datos en el LCD. (Pin de Arduino)
  • D4-D7 (Data Pins): Envían los 4 bits menos significativos de los datos. (Pines de Arduino)
  • VCC: Alimentación +5V. (Conectado a los 5V de Arduino)
  • GND: Tierra. (Conectado a GND de Arduino)
  • Vo (Contrast): Controla el contraste. Se conecta a un potenciómetro para ajuste fino o un divisor de tensión con resistencias.

Ajustando el Contraste

El contraste se ajusta con el pin Vo. Un potenciómetro ofrece un control preciso, pero también puedes usar un divisor de tensión con dos resistencias (por ejemplo, 1kΩ y 220Ω) para obtener aproximadamente 1V. También es posible controlar el contraste con PWM (Pulse Width Modulation) desde un pin PWM de Arduino, usando analogWrite().

Librería LiquidCrystal: El Corazón del Control

La librería LiquidCrystal simplifica la interacción con el LCD. Para usarla, debes incluirla en tu sketch Arduino. La declaración del objeto LCD es crucial. La sintaxis básica es:

LiquidCrystal lcd(RS, E, D4, D5, D6, D7);

Donde RS, E, D4, D5, D6 y D7 son los pines de Arduino conectados a los pines correspondientes del LCD.

Funciones Esenciales de la Librería LiquidCrystal

La librería LiquidCrystal provee varias funciones para controlar la pantalla LCD:

Inicialización

lcd.begin(columnas, filas);

Inicializa el LCD. columnasy filasespecifican las dimensiones de la pantalla (ej: lcd.begin(16, 2);para un LCD 16x2).

Escritura de Texto

lcd.print("Texto a mostrar");

Imprime texto en la posición actual del cursor.

Posicionamiento del Cursor

lcd.setCursor(columna, fila);

Mueve el cursor a la columnay filaespecificadas. La numeración comienza en 0.

Limpiar la Pantalla

lcd.clear();

Borra todo el contenido de la pantalla.

Control del Cursor

  • lcd.cursor(); : Muestra el cursor.
  • lcd.noCursor(); : Oculta el cursor.
  • lcd.blink(); : Hace parpadear el cursor.
  • lcd.noBlink(); : Detiene el parpadeo del cursor.

Desplazamiento de Texto

  • lcd.scrollDisplayLeft(); : Desplaza el texto hacia la izquierda.
  • lcd.scrollDisplayRight(); : Desplaza el texto hacia la derecha.

Ejemplos de Código

Ejemplo Básico

#include <LiquidCrystal.h>LiquidCrystal lcd(1, 2, 4, 5, 6, 7);void setup() { lcd.begin(16, 2); lcd.print("Hola, Mundo!");}void loop() { // Código adicional aquí si es necesario}

Ejemplo con Posicionamiento del Cursor

#include <LiquidCrystal.h>LiquidCrystal lcd(1, 2, 4, 5, 6, 7);void setup() { lcd.begin(16, 2);}void loop() { lcd.setCursor(0, 0); lcd.print("Linea 1"); lcd.setCursor(0, 1); lcd.print("Linea 2"); delay(2000); lcd.clear();}

Ejemplo con Desplazamiento de Texto

#include <LiquidCrystal.h>LiquidCrystal lcd(1, 2, 4, 5, 6, 7);String mensaje = "Este es un mensaje largo";void setup() { lcd.begin(16, 2); lcd.print(mensaje);}void loop() { lcd.scrollDisplayLeft(); delay(500);}

Creación de Caracteres Personalizados

La librería LiquidCrystal permite definir caracteres personalizados. Se crea un array de 8 bytes que representan la matriz de 5x8 píxeles del carácter. La función lcd.createChar()se usa para cargar el carácter personalizado:

byte customChar[8] = { B00100, B01110, B11111, B11111, B01110, B00100, B00000, B00000};lcd.createChar(0, customChar); // 0 es el ID del carácterlcd.write(0); // Imprime el carácter personalizado

Tabla Comparativa de Funciones

Función Descripción
begin() Inicializa el LCD.
print() Imprime texto.
setCursor() Fija la posición del cursor.
clear() Limpia la pantalla.
cursor() Muestra el cursor.
noCursor() Oculta el cursor.
blink() Hace parpadear el cursor.
noBlink() Detiene el parpadeo.
scrollDisplayLeft() Desplaza hacia la izquierda.
scrollDisplayRight() Desplaza hacia la derecha.
createChar() Crea un carácter personalizado.
write() Escribe un byte de datos (incluidos caracteres personalizados).

Solución de Problemas Comunes

  • Pantalla en blanco: Verificar conexiones, alimentación, contraste y la inicialización del LCD.
  • Caracteres ilegibles: Ajustar el contraste con el potenciómetro.
  • Errores de compilación: Asegurarse de haber incluido correctamente la librería LiquidCrystal.

Conclusión

Dominar la librería LiquidCrystal es fundamental para proyectos con Arduino que requieran mostrar información en una pantalla LCD. Este tutorial proporciona una base sólida para comenzar, desde los conceptos básicos hasta funcionalidades más avanzadas. Recuerda experimentar y adaptar el código a tus propias necesidades.

Si quieres conocer otros artículos parecidos a Arduino, librería lcd y sus instrucciones puedes visitar la categoría Libros y Librerías.

Subir