Un módulo de pantalla LCD de 16x2 es una pantalla de texto sencilla para mostrar información corta en circuitos electrónicos. Puede mostrar valores, mensajes, etiquetas de menú y estado del sistema sin una pantalla gráfica. Funciona con cableado paralelo o I2C y es común en proyectos Arduino, contadores, temporizadores y paneles de control. Este artículo ofrece información sobre cableado, funcionamiento y configuración.

¿Qué es un módulo de pantalla LCD 16x2?
Un módulo de pantalla LCD de 16x2 es una pantalla basada en texto utilizada para mostrar información corta en circuitos electrónicos. No está diseñado para gráficos completos como las pantallas OLED o TFT. En su lugar, es mejor para información sencilla como lecturas de voltaje, valores de temperatura, datos de temporizador, mensajes del sistema y etiquetas de menú.
Cada carácter se forma usando una pequeña matriz de puntos, comúnmente 5x8 puntos. Debido a que la pantalla es sencilla, asequible y con soporte, sigue siendo una opción habitual para electrónica DIY, paneles de control y sistemas embebidos.
Especificaciones del módulo de pantalla LCD 16x2
| Especificaciones | Valor |
|---|---|
| Formato de visualización | 16 caracteres × 2 líneas |
| Matriz de caracteres | 5 × 8 puntos |
| Total de píxeles | 1280 píxeles (32 caracteres × 40 píxeles cada uno) |
| IC controlador | HD44780U o compatibles |
| Voltaje de funcionamiento | 5V DC |
| Corriente de funcionamiento | 1-3 mA (sin retroiluminación) |
| Corriente de retroiluminación | 120-200 mA |
| Temperatura de funcionamiento | 0°C a +50°C |
| Modos de comunicación | Paralelo de 4 bits u 8 bits |
| Total Pins | 16 pines |
Funciones de pinado y pines LCD 16x2

| Sr. No | Pin nº | Nombre postal | Tipo de pasador | Descripción del pin | Conexión de pasadores |
|---|---|---|---|---|---|
| 1 | Pin 1 | Campo | Pin de fuente | Este es un pin de tierra de la LCD | Conectado a la tierra del MCU/fuente de alimentación |
| 2 | Pin 2 | VCC | Pin de fuente | Este es el pin de tensión de alimentación del LCD | Conectado al pin de alimentación de la fuente de alimentación |
| 3 | Pin 3 | V0/VEE | Pasador de control | Ajusta el contraste del LCD. | Conectado a un POT variable que puede suministrar de 0 a 5V |
| 4 | Pin 4 | Registrarse Seleccionar | Pasador de control | Alterna entre el registro de comandos/datos | Conectado a un pin del MCU y recibe 0 o 1. |
| 0 -> Modo de mando | |||||
| 1-> Modo de Datos | |||||
| 5 | Pin 5 | Leer/Escribir | Pasador de control | Alterna la pantalla LCD entre Operación de Lectura/Escritura | Conectado a un pin del MCU y recibe 0 o 1. |
| 0 -> Operación de escritura | |||||
| 1-> Operación de lectura | |||||
| 6 | Pin 6 | Habilitar | Pasador de control | Debe mantenerse en alto para realizar la operación de Lectura/Escritura | Conectado al MCU y siempre se mantuvo alto. |
| 7 | Pines 7-14 | Bits de datos (0-7) | Pin de datos/comando | Los pines se utilizan para enviar comandos o datos a la pantalla LCD. | En modo de 4 hilos |
| Solo 4 pines (0-3) están conectados al MCU | |||||
| En modo de 8 cables | |||||
| Los 8 pines (0-7) están conectados al MCU | |||||
| 8 | Pin 15 | LED positivo | Pin LED | Funcionamiento normal similar al de un LED para iluminar la pantalla LCD | Conectado a +5V |
| 9 | Pin 16 | LED negativo | Pin LED | Funcionamiento normal similar al de un LED para iluminar la pantalla LCD conectada con GND. | Conectado a tierra |
¿Cómo funciona una pantalla LCD de 16x2?

Una pantalla LCD de 16x2 recibe comandos y datos de caracteres de un microcontrolador. Los comandos controlan acciones como limpiar la pantalla, mover el cursor y encender o apagar la pantalla. Los datos de caracteres indican a la pantalla LCD qué letras, números o símbolos mostrar.
El pin RS selecciona si la señal entrante es un dato de comando o de visualización. El pin E permite la transferencia. Los pines de datos transportan la información real. El controlador LCD coloca entonces los caracteres en la posición correcta de la pantalla.
Modos de cableado LCD 16x2: 4-Bit, 8-bit e I2C

| Modo | Pines usados para datos | Principal ventaja | Limitación | Lo mejor para |
|---|---|---|---|---|
| Modo de 4 bits | D4, D5, D6, D7 | Guarda pines GPIO | Un poco más lento que el modo de 8 bits | Proyectos Arduino, menús sencillos, pantallas de sensores |
| Modo de 8 Bits | De D0 a D7 | Envía el byte completo de una vez | Utiliza más pines GPIO | Sistemas o diseños antiguos con muchos pines libres |
| Modo I2C | SDA y SCL | Reduce el cableado | Necesita dirección y biblioteca correctas | Proyectos compactos y cableado más limpio |
¿Cómo conectar una pantalla LCD de 16x2 a un Arduino?

La conexión Arduino más común utiliza el modo de 4 bits. Este método utiliza cuatro pines de datos LCD y algunos pines de control.
| Pin LCD | Conectarse a Arduino | Propósito |
|---|---|---|
| VSS | GND | Campo |
| VDD | 5V | Alimentación LCD |
| V0 / VEE | Pasador central del potenciómetro | Control de contraste |
| RS | Pin digital Arduino | Selecciona comando o datos |
| RW | GND | Modo de escritura |
| E | Pin digital Arduino | Activar señal |
| D4-D7 | Pines digitales Arduino | Transferencia de datos |
| A / LED+ | 5V a través de resistencia, si es necesario | Retroiluminación positiva |
| K / LED- | GND | Negativo de retroiluminación |
Ejemplo de código Arduino
#include
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup() {
LCD.Begin(16, 2);
lcd.print ("16x2 LCD Ready");
lcd.setCursor(0, 1);
lcd.print ("Hola Mundo");
}
bucle vacío() {
}
Este código inicializa la pantalla LCD e imprime texto en ambas filas.
¿Cómo usar una pantalla LCD de 16x2 con un módulo I2C?

Una pantalla LCD I2C 16x2 tiene una pequeña mochila acoplada a la pantalla. Esta placa convierte la interfaz paralela normal en una interfaz de comunicación de dos cables usando SDA y SCL.
La versión I2C es útil cuando el proyecto tiene pocos pines de microcontrolador o necesita un cableado más limpio. Solo necesita VCC, GND, SDA y SCL.
Ejemplo básico de código LCD I2C
#include
#include
Direcciones I2C comunes: 0x27 o 0x3F
LiquidCrystal_I2C LCD(0x27, 16, 2);
void setup() {
lcd.init();
lcd.retroiluminación();
lcd.setCursor(0, 0);
lcd.print ("I2C LCD Ready" );
lcd.setCursor(0, 1);
lcd.print ("Dirección: 0x27") );
}
bucle vacío() {
}
Si la pantalla no responde, utiliza un escáner I2C para encontrar la dirección correcta.
LCD paralelo 16x2 vs LCD I2C 16x2

| Característica | LCD paralelo 16x2 | I2C 16x2 LCD |
|---|---|---|
| Cableado | Usa más cables | Usa menos cables |
| Uso de GPIO | Higher | Lower |
| Configuración del código | Utiliza mapeo directo de pines | Utiliza la dirección I2C |
| Enfoque en la resolución de problemas | Orden de pines, RS, E, líneas de datos | Dirección, SDA/SCL, biblioteca |
| Valor de aprendizaje | Mejor para entender señales LCD | Mejor para construir proyectos rápidamente |
| Coste | Más barato | Normalmente un poco más alto |
| Mejor Uso | Control directo y aprendizaje | Proyectos de cableado compacto y GPIO limitado |
Problemas comunes y solución de problemas con LCD 16x2
| Problema | Causa posible | Solución |
|---|---|---|
| La retroiluminación se enciende, pero no aparece ningún texto | Contraste incorrecto o inicialización fallida | Ajustar contraste y comprobar código |
| Aparecen cajas negras | La pantalla LCD tiene alimentación pero no está inicializada | Revisa RS, E, pines de datos y configuración de la librería |
| Aparecen caracteres aleatorios | Cables sueltos o mapeo incorrecto de pines | Revisar el cableado y el orden de los pines del código |
| Sin retroiluminación | Pines A/K invertidos o sin suministro de retroiluminación | Revisa el cableado LED+ y LED- |
| LCD I2C no detectado | Dirección incorrecta o problema con SDA/SCL | Ejecuta un escáner I2C |
| El texto es demasiado débil | Mal contraste o tensión de alimentación débil | Ajusta V0 y comprueba la alimentación |
| Parpadeos de la pantalla | Alimentación inestable o limpieza repetida de pantalla | Utiliza energía estable y reduce las llamadas frecuentes de clear() |
| A veces funciona la pantalla | Conexión de placa de prueba floja, unión de soldadura débil | Asegurar el cableado e inspeccionar la soldadura |
Comandos LCD 16x2 y caracteres personalizados
Una pantalla LCD de 16x2 permite comandos para controlar la posición del cursor, borrar la pantalla, mover el texto y caracteres personalizados. Los caracteres personalizados se almacenan en CGRAM y pueden usarse para pequeños iconos como símbolos de batería, flechas, marcas de grado, barras de señal o bloques de progreso.
Ejemplo sencillo de personaje personalizado
#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
byte batteryIcon[8] = {
B01110,
B11011,
B10001,
B10001,
B11111,
B11111,
B11111,
B00000
};
void setup() {
LCD.Begin(16, 2);
lcd.createChar(0, batteryIcon);
lcd.setCursor(0, 0);
lcd.print("Battery: ");
lcd.write(byte(0));
}
bucle vacío() {
}
Los caracteres personalizados hacen que la pantalla sea más útil para interfaces de usuario sencillas sin necesidad de una pantalla gráfica.
LCD 16x2 vs pantallas OLED, TFT, de 7 segmentos y seriales
| Tipo de pantalla | Lo mejor para | Ventaja | Limitación |
|---|---|---|---|
| LCD 16x2 | Mensajes de texto, números y estado | Bajo coste y fácil de usar | Sin gráficos completos |
| I2C 16x2 LCD | Pantalla de texto con menos cables | Cableado sencillo | Necesita la dirección y la biblioteca correctas |
| Pantalla OLED | Texto nítido y gráficos pequeños | Alto contraste y tamaño compacto | Área de visualización más pequeña en muchos módulos |
| Pantalla TFT | Interfaz de color y gráficos | Soporta imágenes y colores | Código y cableado más complejos |
| Pantalla de 7 segmentos | Valores numéricos | Muy legible para números | Pobre para el texto |
| LCD serial | Comunicación sencilla con microcontrolador | Control fácil | A menudo más caro |
Preguntas frecuentes [FAQ]
Q1. ¿Cuándo debería usar una pantalla LCD paralela en lugar de una LCD I2C?
Usa una pantalla LCD paralela cuando quieras aprender a controlar directamente la pantalla. Usa una pantalla LCD I2C cuando necesites menos cables y quieras un cableado más limpio.
Q2. ¿Por qué aparecen cajas negras en la pantalla LCD?
Las cajas negras significan que la pantalla LCD tiene energía pero no está correctamente inicializada. Comprueba el código, la configuración de la biblioteca y las conexiones de cableado.
Q3. ¿Para qué sirve el pin RS?
El pin RS selecciona si la pantalla LCD recibe un comando o datos de visualización. Ayuda a la pantalla LCD a saber si debe controlar la pantalla o mostrar personajes.
Q4. ¿Por qué el pin del RW suele estar conectado a tierra?
La mayoría de los proyectos solo escriben datos en la pantalla LCD, así que RW está conectado a tierra para mantenerlo en modo de escritura. Esto también ahorra un pin de microcontrolador.
Q5. ¿Por qué se necesita un escáner I2C?
Un escáner I2C ayuda a encontrar la dirección LCD correcta, como 0x27 o 0x3F. Si la dirección es incorrecta, la pantalla puede no responder.