Biblioteca y código de Arduino para pantalla LCD2004 con I2C

Biblioteca y código de Arduino para pantalla LCD2004 con I2C

En este tutorial exploraremos cómo usar la pantalla LCD2004 con comunicación I2C. Esta configuración te permite mostrar texto en cuatro líneas, lo que la hace ideal para diversas aplicaciones. Cubriremos el cableado requerido, fragmentos de código y cómo implementar la funcionalidad de forma efectiva.

Usaremos la biblioteca LiquidCrystal_I2C para gestionar la pantalla LCD. Esta biblioteca simplifica la interacción con la LCD al encargarse de la comunicación I2C por ti. Para una comprensión completa, asegúrate de ver el video para orientación visual (en el video a 00:00).

Hardware explicado

El componente principal de este proyecto es la pantalla LCD2004, que cuenta con 20 columnas y 4 filas para la salida de texto. Se comunica mediante I2C, lo que permite menos conexiones en comparación con las conexiones paralelas tradicionales. Esto la hace adecuada para proyectos con disponibilidad limitada de pines en el Arduino.

La interfaz I2C utiliza dos líneas, SDA (línea de datos) y SCL (línea de reloj), que se conectan a los pines correspondientes del Arduino. La pantalla LCD también requiere conexiones de alimentación y tierra. En esta configuración, conectaremos la pantalla a una fuente de alimentación de 5V, que puede ser suministrada directamente por el Arduino.

Detalles de la ficha técnica

FabricanteGenérico
Número de piezaLCD2004
Tensión lógica/E/S5 V
Tensión de alimentación5 V
Corriente de salida (por canal)Típicamente 20 mA
Corriente de pico (por canal)Típicamente 40 mA
Guía de frecuencia PWMNo aplica
Umbrales lógicos de entrada0.3 Vcc (bajo), 0.7 Vcc (alto)
Caída de tensión / RDS(on)/ saturaciónTípicamente 0.2 V
Límites térmicos0 °C a 50 °C
PaquetePantalla LCD estándar 4x20
Notas / variantesDisponible con diferentes opciones de retroiluminación

  • Asegúrese de que el suministro de energía sea adecuado para evitar daños.
  • Utilice resistencias pull-up en las líneas SDA y SCL si es necesario.
  • Compruebe la dirección I2C; comúnmente 0x27 para esta pantalla.
  • Mantén las conexiones cortas para minimizar la interferencia.
  • Asegúrese de que la biblioteca esté correctamente instalada antes de subir el código.

Instrucciones de cableado

Para conectar la pantalla LCD2004 mediante I2C al Arduino, siga estas conexiones:

  • Conecte elVCCpin del LCD al5Vpin en el Arduino.
  • Conecte elGNDpin de la pantalla LCD a unGNDpin en el Arduino.
  • Conecte elSDApin del LCD alA4pin del Arduino.
  • Conecte elSCLpin del LCD alA5pin en el Arduino.

Si tu placa Arduino tiene pines I2C diferentes, asegúrate de ajustar las conexiones en consecuencia. El video también muestra una configuración de cableado alternativa (en el video a 01:30).

Ejemplos de código y guía paso a paso

Veamos un ejemplo sencillo de cómo inicializar la pantalla LCD y mostrar un mensaje. El siguiente fragmento configura la pantalla LCD e imprime "Hello, world!" en ella.

lcd.begin(); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
lcd.print("Hello, world!"); // Display message

Este código inicializa la pantalla LCD y activa la retroiluminación. Luego muestra el mensaje en la primera línea de la pantalla LCD. La retroiluminación es esencial para la visibilidad en condiciones de poca luz.

A continuación examinaremos un ejemplo más complejo que muestra datos dinámicos, como lecturas de voltaje.

lcd.setCursor(0,0); // Set cursor to the first line
lcd.print("Voltage: "); // Display voltage label
float v = 8.254; // Example voltage value
lcd.print(v); // Print voltage value

En este fragmento establecemos la posición del cursor en la primera línea y mostramos una etiqueta de voltaje seguida del valor real del voltaje. Esto le permite mostrar mediciones en tiempo real en un formato amigable para el usuario.

Para funcionalidad adicional, puedes implementar entrada serial para permitir que los usuarios introduzcan caracteres mediante el monitor serial y mostrarlos en la pantalla LCD.

if (Serial.available()) { // Check for serial input
  lastChar = Serial.read(); // Read the last character
  lcd.write(lastChar); // Display character on LCD
}

Este código comprueba si hay datos disponibles en el puerto serie. Si es así, lee el último carácter ingresado y lo muestra en la pantalla LCD. Esta interacción mejora la experiencia del usuario al permitir pantallas dinámicas basadas en la entrada del usuario.

Para ver el código completo, consulte el programa completo cargado más abajo en el artículo.

Demostración / Qué esperar

Cuando ejecutes el código, deberías ver el mensaje inicial mostrado en la LCD, seguido de las lecturas de voltaje y de cualquier carácter introducido a través del monitor serial. Asegúrate de que las conexiones estén firmes para evitar problemas de visualización. Si la LCD no muestra nada, vuelve a comprobar el cableado y la dirección I2C (en el video a las 02:15).

Imágenes

LCD2004_display-3
LCD2004_display-3
LCD2004_display-1
LCD2004_display-1
LCD2004_display-2
LCD2004_display-2
121-Arduino code for LCD2004 with I2C: Hello World sketch
Idioma: C++
122-Arduino code for LCD2004 with I2C RoboJax custom sketch
Idioma: C++
123-Arduino code for LCD2004 with I2C: blinking sketch
Idioma: C++
124-Arduino code for LCD2004 with I2C serial monitor sketch
Idioma: C++
¡Copiado!

Recursos y referencias

Archivos📁

No hay archivos disponibles.