Muestra "Hola Mundo", contadores, emojis y datos de otros sensores.
El Display LCD 16x2
LCD 16x2: 16 columnas × 2 filas = 32 caracteres
La Ventaja del I2C
El LCD normal necesita muchos cables. Con el modulo I2C, toda la comunicacion va por solo 2 cables de datos. Mucho mas simple.
Sin I2C
cables de datos, control, alimentacion...
Con I2C
VCC, GND, SDA, SCL - ¡y listo!
Conexion Super Simple
| Pin LCD | Pin Arduino | Funcion |
|---|---|---|
| VCC | 5V | Alimentacion |
| GND | GND | Tierra |
| SDA | A4 | Datos I2C |
| SCL | A5 | Reloj I2C |
Direccion I2C
Cada dispositivo I2C tiene una "direccion" unica. El LCD suele usar una de estas dos:
Caracteres Personalizados
Puedes crear hasta 8 caracteres personalizados. Cada uno es una cuadricula de 5×8 pixeles. ¡Dibuja caritas, iconos o lo que quieras!
byte caritaFeliz[] = {
B00000,
B01010,
B01010,
B00000,
B10001,
B01110,
B00000,
B00000
};
Instalar Libreria
Necesitas la libreria LiquidCrystal_I2C para comunicarte con el LCD.
El Codigo
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Direccion I2C (prueba 0x27 o 0x3F)
const int LCD_ADDR = 0x27;
// Inicializar LCD: direccion, columnas, filas
LiquidCrystal_I2C lcd(LCD_ADDR, 16, 2);
// Caracter personalizado
byte caritaFeliz[] = {
B00000, B01010, B01010, B00000,
B10001, B01110, B00000, B00000
};
void setup() {
lcd.init(); // Iniciar LCD
lcd.backlight(); // Encender luz de fondo
// Crear caracter personalizado (slot 0)
lcd.createChar(0, caritaFeliz);
// Escribir en linea 1
lcd.setCursor(0, 0); // Columna 0, Fila 0
lcd.print("EigenRobotics");
// Escribir en linea 2
lcd.setCursor(0, 1); // Columna 0, Fila 1
lcd.print("Hola Mundo! ");
lcd.write(0); // Mostrar carita
}
void loop() {
// Contador en segunda linea
for (int i = 0; i <= 99; i++) {
lcd.setCursor(14, 1);
if (i < 10) lcd.print(" ");
lcd.print(i);
delay(500);
}
}
Demo Interactivo
Escribe en el LCD
Prueba como se ve tu mensaje en la pantalla
Integrar con Otros Proyectos
El LCD es perfecto para dar feedback visual. Aqui tienes ideas para combinarlo con proyectos anteriores:
| Proyecto | Que Mostrar |
|---|---|
| P3 Alarma | "INTRUSO!" o distancia actual en cm |
| P4 Girasol | Nivel de luz izquierda vs derecha |
| P5 Robot | "Avanzando", "Girando", "Obstaculo!" |
| P6 Control IR | Codigo del boton pulsado |
| P7 Brazo | Angulos: "B:90 C:45 P:30" |
| P8 Seguidor | "Linea OK" o "Perdido!" |
Problemas Comunes
| Problema | Causa | Solucion |
|---|---|---|
| No muestra nada | Contraste muy bajo | Gira el potenciometro pequeño del modulo I2C |
| Solo cuadros negros | No inicializado | Verifica direccion I2C (0x27 o 0x3F) |
| Caracteres raros | Direccion incorrecta | Usa el escaner I2C del codigo |
| Parpadea o se reinicia | Falta corriente | Usa fuente externa si tienes muchos componentes |
Simulador
Pasos de Construccion
Conecta los 4 cables
VCC a 5V, GND a GND, SDA a A4, SCL a A5. ¡Solo 4 cables!
Instala la libreria
Tools → Manage Libraries → Buscar "LiquidCrystal I2C" → Instalar
Sube el codigo
Copia el codigo y subelo al Arduino
Ajusta el contraste
Si solo ves cuadros o nada, gira el potenciometro pequeño del modulo I2C
Verifica la direccion
Si no funciona, usa el escaner I2C para encontrar la direccion real
Personaliza
Cambia los mensajes, crea tus propios caracteres, integra con otros sensores
Experimentos
Diseña Iconos
Crea tus propios caracteres: un robot, una nave, tu inicial
Termometro
Conecta un sensor de temperatura y muestra los grados
Cronometro
Con un boton start/stop para medir tiempos
Menu Navegable
Usa botones para navegar entre opciones en el LCD
Texto Scrolling
Mensajes largos que se desplazan de derecha a izquierda
Mini Juego
Un simple juego de evitar obstaculos con 2 botones