Introducción
Bienvenido a otro tutorial de Velxio. Hoy vamos a construir un clásico proyecto Hola Mundo usando una pantalla LCD 20x4 y un Arduino Uno. Es un proyecto perfecto para principiantes que quieran aprender a interactuar con pantallas LCD de caracteres usando microcontroladores. Usaremos la popular librería LiquidCrystal, que facilita enormemente el control de la pantalla.
Al final de este artículo, serás capaz de cablear un LCD 20x4, escribir código para mostrar texto en varias líneas e incluso mostrar datos dinámicos como el tiempo de actividad. ¡Vamos allá!
Recorrido por el circuito

Nuestro circuito consta de dos componentes principales: un Arduino Uno y un LCD 20x4 (modelo wokwi-lcd2004). El LCD tiene 16 pines, pero solo necesitamos 6 de ellos para datos y control. Aquí está el cableado:
- RS (Selección de Registro) – conectado al pin 12 del Arduino (cable verde)
- E (Habilitación) – conectado al pin 11 del Arduino (cable verde)
- D4 – conectado al pin 5 del Arduino (cable azul)
- D5 – conectado al pin 4 del Arduino (cable azul)
- D6 – conectado al pin 3 del Arduino (cable azul)
- D7 – conectado al pin 2 del Arduino (cable azul)
Estamos usando el modo de 4 bits, que solo requiere cuatro líneas de datos (D4–D7) en lugar de ocho. Esto ahorra valiosos pines de E/S. El LCD también necesita alimentación (5V) y tierra, pero en Velxio estas conexiones se realizan automáticamente al colocar los componentes.
Para construir este circuito en Velxio:
- Abre el ejemplo LCD Hola Mundo o inicia un nuevo proyecto.
- Usa el selector de componentes para añadir un Arduino Uno y un LCD 20x4.

- Haz clic en los pines y arrastra los cables para que coincidan con las conexiones anteriores. Puedes cambiar el color de los cables haciendo clic en la muestra de color.
- Tu lienzo debería verse como el diagrama del circuito de arriba.
Recorrido por el código

Ahora veamos el código. Abre el editor de código en Velxio (verás el editor Monaco con resaltado de sintaxis). Aquí está el sketch completo:
// LiquidCrystal Library - Hello World
// Demonstrates the use a 20x4 LCD display
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print("Hello, Arduino!");
lcd.setCursor(0, 1);
lcd.print("Velxio Emulator");
lcd.setCursor(0, 2);
lcd.print("LCD 2004 Test");
}
void loop() {
// set the cursor to column 0, line 3
lcd.setCursor(0, 3);
// print the number of seconds since reset:
lcd.print("Uptime: ");
lcd.print(millis() / 1000);
}
Cómo funciona
- Incluir la librería:
#include <LiquidCrystal.h>nos da acceso a todas las funciones del LCD. - Definir pines: Creamos constantes para los números de pin:
rs = 12,en = 11,d4 = 5,d5 = 4,d6 = 3,d7 = 2. Coinciden con nuestro cableado. - Crear objeto LCD:
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);le indica a la librería qué pines están conectados. - En
setup():lcd.begin(20, 4);inicializa la pantalla con 20 columnas y 4 filas.lcd.print()escribe texto en la posición actual del cursor.lcd.setCursor(col, fila)mueve el cursor a una posición específica (basada en 0).
- En
loop():- Movemos el cursor a la fila 3, columna 0.
- Imprimimos “Uptime: ” seguido de
millis() / 1000(segundos desde el reinicio).
Para ejecutar el código, haz clic en el botón Compilar de la barra de herramientas y luego en Ejecutar.

Conceptos clave
- Modo de 4 bits vs 8 bits: Usar solo 4 líneas de datos (D4–D7) ahorra pines. La librería LiquidCrystal maneja el protocolo.
- Posicionamiento del cursor:
setCursor(col, fila)– recuerda que las filas y columnas empiezan en 0. millis(): Devuelve los milisegundos desde que se inició el programa. Dividir por 1000 da los segundos.- Gestión de librerías: Velxio incluye la librería LiquidCrystal por defecto. Puedes añadir más librerías a través del Gestor de Librerías.

Errores comunes y consejos de depuración
- Errores de cableado: Verifica que cada cable conecte los pines correctos. Intercambiar D4 y D5 provocará caracteres distorsionados.
- Dimensiones incorrectas en
begin(): Si usaslcd.begin(16, 2)con una pantalla 20x4, el texto puede aparecer truncado o desalineado. - Librería faltante: Si obtienes un error de compilación sobre
LiquidCrystal.h, asegúrate de que la librería esté instalada (debería estarlo por defecto). - Cursor no visible: El cursor es invisible por defecto. Usa
lcd.cursor()para mostrar un cursor de subrayado. - Texto que no se actualiza: En el bucle, puede que necesites limpiar la línea antes de imprimir nuevos datos. Usa
lcd.setCursor(0, 3); lcd.print(" ");para limpiar la línea.
Extensiones sugeridas
Una vez que tengas el Hola Mundo básico funcionando, prueba estas mejoras:
- Texto desplazable: Usa
lcd.scrollDisplayLeft()olcd.scrollDisplayRight()para crear mensajes que se desplacen. - Mostrar datos de sensores: Lee un sensor analógico (por ejemplo, un potenciómetro) y muestra su valor en el LCD.
- Caracteres personalizados: Crea tus propios símbolos usando
lcd.createChar(). - Entrada con botón: Añade un botón para cambiar el mensaje mostrado.
- Múltiples pantallas: Usa una máquina de estados para recorrer diferentes páginas de información.
¡Pruébalo tú mismo!
¿Listo para construir tu propio proyecto con LCD? Abre el ejemplo LCD Hola Mundo en Velxio y empieza a experimentar. Puedes modificar el código, cambiar el cableado o añadir nuevos componentes, todo en tu navegador, sin necesidad de hardware.
¡Feliz creación!