Arduino - LCD
En este tutorial de LCD para Arduino, aprenderemos cómo conectar una pantalla LCD (display de cristal líquido) a la placa Arduino. Las pantallas LCD son muy populares y ampliamente utilizadas en proyectos electrónicos para mostrar información. Hay muchos tipos de LCD. Este tutorial toma como ejemplo una pantalla LCD 16x2 (16 columnas y 2 filas). Las demás pantallas LCD son similares.
※ Nota:
Si quieres simplificar el cableado, puedes usar LCD I2C en su lugar. Consulta tutorial de LCD I2C.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de LCD 16x2
Disposición de pines

La pantalla LCD tiene hasta 16 pines. En los usos más comunes, no usamos todos los pines.
Con el apoyo de la biblioteca LiquidCrystal, incluso podemos usar LCD sin saber el significado de estos pines. Sin embargo, si tienes curiosidad o quieres conocerlos a fondo, veamos estos pines y su funcionalidad:
- Pin GND: debe conectarse a GND (0V).
- Pin VCC: la fuente de alimentación para la LCD, debe conectarse a VCC (5V).
- Pin Vo (Contraste LCD): controla el contraste y el brillo de la LCD, puede conectarse a 5V (el mayor contraste y brillo), o conectarse a un potenciómetro (para ajustar el contraste y el brillo)
- Si queremos enviar el comando para controlar la LCD, necesitamos colocar el pin RS en LOW (por ejemplo, fijar el cursor en una ubicación específica, borrar la pantalla ...).
- Si queremos enviar los datos para mostrar en la LCD, necesitamos colocar el pin RS en HIGH.
- Pin R/W (Lectura/Escritura): sirve para seleccionar el modo LECTURA o ESCRITURA.
- Si queremos leer datos de la LCD, este pin debe ponerse en HIGH.
- Si queremos enviar datos a la LCD, este pin debe ponerse en LOW. Como solo estamos usando esta LCD como un dispositivo de salida, vamos a dejarlo en LOW.
- Pin EN (Enable): se usa para activar la LCD. HIGH para activar la LCD, LOW para desactivar la LCD.
- D0-D7 (Bus de datos): transportan datos y comandos entre Arduino y LCD. Hay dos modos para enviar datos: modo de 4 bits y modo de 8 bits.
- A-K (Ánodo y Cátodo): se utilizan para alimentar la retroiluminación de la LCD. El pin A debe conectarse a VCC. El pin K debe conectarse a GND.
Modo de 4 bits y modo de 8 bits
- Modo de 8 bits: 8 bits de un byte se envían al mismo tiempo en los pines D0 a D7.
- Modo de 4 bits: 8 bits de un byte se envían dos veces, cada vez 4 bits en los pines D4 a D7.
El modo de 8 bits es más rápido que el modo de 4 bits, pero utiliza más pines que el modo de 4 bits. La selección del modo se realiza durante el proceso de inicialización enviando un comando a la pantalla LCD.
Este tutorial utiliza el modo de 4 bits, que es el más utilizado.
En este modo, los pines del LCD:
- 6 pines (RS, EN, D4, D5, D6 y D7) están conectados al pin de Arduino.
- 4 pines (D0, D1, D2 y D3) NO están conectados.
- Los 6 pines restantes están conectados a GND/VCC o a un potenciómetro.
Tabla de pines del LCD en modo de 4 bits
| LCD PIN | CONNECTED TO | |
|---|---|---|
| 01 | GND | GND |
| 02 | VCC | 5V |
| 03 | Vo | 5V or potentiometer's pin |
| 04 | RS | An Arduino's pin |
| 05 | R/W | GND |
| 06 | EN | An Arduino's pin |
| 07 | D0 | NOT connected |
| 08 | D1 | NOT connected |
| 09 | D2 | NOT connected |
| 10 | D3 | NOT connected |
| 11 | D4 | An Arduino's pin |
| 12 | D5 | An Arduino's pin |
| 13 | D6 | An Arduino's pin |
| 14 | D7 | An Arduino's pin |
| 15 | A | 5V |
| 16 | K | GND |
Coordenada LCD
LCD 16x2 incluye 16 columnas y 2 filas. Las columnas y filas están indexadas desde 0.

Cómo funciona
El proceso de enviar datos (que deben mostrarse) a la pantalla LCD:
- Arduino pone el pin RS en ALTO (para seleccionar el registro de datos)
- Arduino escribe datos en los pines D4 a D7 (bus de datos).
- La pantalla LCD recibe los datos en el bus de datos.
- La pantalla LCD guarda los datos recibidos en el resistor de datos ya que el pin RS está en ALTO. Luego, la pantalla LCD muestra los datos en la pantalla
El proceso de enviar comandos (para controlar) a la pantalla LCD (por ejemplo, hacer parpadear la pantalla LCD, colocar el cursor en una ubicación específica, borrar la pantalla ...):
- Arduino pone el pin RS en nivel bajo (para seleccionar el registro de comandos).
- Arduino escribe el comando en los pines D4 a D7 (bus de datos).
- La pantalla LCD recibe los datos a través del bus de datos.
- La pantalla LCD almacena los datos recibidos en el registro de comandos, ya que el pin RS está en nivel bajo. Luego, la pantalla LCD ejecuta la acción en función del valor del comando.
Arduino - Pantalla LCD
Controlar la pantalla LCD es una tarea bastante complicada. Afortunadamente, gracias a la biblioteca LiquidCrystal, esta biblioteca facilita el proceso de controlar la pantalla LCD para ti, de modo que no necesitas conocer las instrucciones de bajo nivel. Solo necesitas conectar Arduino a la pantalla LCD y usar las funciones de la biblioteca. Usar la pantalla LCD es pan comido.
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Cómo Programar para LCD
- Incluir la biblioteca:
- Define qué pin de Arduino está conectado a los seis pines del LCD: RS, EN, D4, D4, D6, D7.
Una de las ventajas de la biblioteca es que el pin de Arduino conectado al LCD se puede configurar. Esto lo hace flexible cuando conectas Arduino al LCD y a otros sensores y actuadores.
- Declarar un objeto LiquidCrystal:
- Configura el número de columnas y filas del LCD.
- Mover el cursor a la posición deseada (column_index, row_index)
- Imprime un mensaje en la pantalla LCD.
Hay muchas cosas más que podemos hacer con LCD (ver la parte Haz más con LCD)
※ Nota:
Puedes elegir cualquiera de los seis pines de Arduino para conectar al LCD, siempre que especifiques el pin conectado en el código de Arduino.
Código de Arduino
Pasos R\u00e1pidos
- Copie el código anterior y ábralo con Arduino IDE
- Haga clic en el botón Subir en Arduino IDE para cargar el código en Arduino
- Vea el resultado en la pantalla LCD

- Intenta modificar el texto y la posición
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.
Personaje personalizado
lcd.print() función solo admite caracteres ASCII. Si quieres mostrar un carácter o símbolo especial (p. ej. un corazón, un pájaro enojado), debes usar el generador de caracteres que se muestra a continuación.
LCD 16x2 puede mostrar 32 caracteres (2 filas y 16 columnas). Cada carácter está compuesto por 40 píxeles (8 filas y 5 columnas).
El generador de caracteres representa un carácter (40 píxeles). Solo necesitas seguir los siguientes pasos:
Resultado en la pantalla LCD:

Múltiples caracteres personalizados
Podemos crear hasta 8 caracteres personalizados (con índices de 0 a 7). El siguiente ejemplo crea y muestra tres caracteres.
Resultado en la pantalla LCD:

Resumen: cómo usar un carácter personalizado en la pantalla LCD
- Utiliza el generador de caracteres anterior para crear código binario para el carácter personalizado.
- Declara el código binario del carácter personalizado (copiar del paso anterior)
- Crear un carácter personalizado y asignarlo a un valor de índice (de 0 a 7) en la función setup()
- Imprimir el carácter personalizado en la pantalla LCD en cualquier momento y en cualquier lugar (en las funciones setup() o loop())
Desafíate a ti mismo
Utiliza una pantalla LCD para realizar alguno de los siguientes proyectos:
- Enviando texto desde la PC (a través del Monitor Serial) y mostrando en el LCD. Consejo: Consulte Cómo enviar datos desde la PC a Aduino
- Mostrando la tecla pulsada del teclado numérico en la pantalla LCD. Consejo: Consulte Arduino - Teclado