Proyecto 9

Display LCD

Pantalla retro de 16x2 caracteres. Muestra mensajes, datos de sensores y hasta emojis personalizados.

📺
Tu Arduino Habla

Muestra "Hola Mundo", contadores, emojis y datos de otros sensores.

1

El Display LCD 16x2

E
i
g
e
n
R
o
b
o
t
i
c
s
H
o
l
a
M
u
n
d
o
!
:)

LCD 16x2: 16 columnas × 2 filas = 32 caracteres

2

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

12+

cables de datos, control, alimentacion...

Con I2C

4

VCC, GND, SDA, SCL - ¡y listo!

3

Conexion Super Simple

ARDUINO UNO 5V GND A4 A5 LCD 16x2 I2C HOLA MUNDO! :) Modulo I2C VCC GND SDA SCL Solo 4 cables!
Pin LCD Pin Arduino Funcion
VCC 5V Alimentacion
GND GND Tierra
SDA A4 Datos I2C
SCL A5 Reloj I2C
4

Direccion I2C

Cada dispositivo I2C tiene una "direccion" unica. El LCD suele usar una de estas dos:

0x27
La mas comun
0x3F
Algunos modelos
💡
Si no funciona: El codigo incluye un escaner I2C. Descomentalo, abre el Monitor Serial y veras la direccion real de tu LCD.
5

Caracteres Personalizados

Puedes crear hasta 8 caracteres personalizados. Cada uno es una cuadricula de 5×8 pixeles. ¡Dibuja caritas, iconos o lo que quieras!

Carita Feliz
Carita Triste
Corazon
byte caritaFeliz[] = {
  B00000,
  B01010,
  B01010,
  B00000,
  B10001,
  B01110,
  B00000,
  B00000
};
6

Instalar Libreria

Necesitas la libreria LiquidCrystal_I2C para comunicarte con el LCD.

1
Arduino IDE → Tools → Manage Libraries...
2
Buscar "LiquidCrystal I2C"
3
Instalar la de Frank de Brabander
7

El Codigo

p9_lcd.ino
#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);
  }
}
lcd.init()
Inicializa la comunicacion I2C con el LCD
lcd.backlight()
Enciende la luz de fondo (azul en la mayoria)
lcd.setCursor(col, row)
Mueve el cursor a la posicion indicada (0-15, 0-1)
lcd.print("texto")
Escribe texto en la posicion actual del cursor
lcd.createChar(n, array)
Guarda un caracter personalizado en el slot n (0-7)
lcd.write(n)
Muestra el caracter personalizado del slot n
8

Demo Interactivo

Escribe en el LCD

Prueba como se ve tu mensaje en la pantalla

9

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!"
10

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
11

Simulador

Wokwi Simulator
💡
En Wokwi: Anade un "LCD 16x2 (I2C)" desde los componentes. La direccion por defecto es 0x27.
12

Pasos de Construccion

1

Conecta los 4 cables

VCC a 5V, GND a GND, SDA a A4, SCL a A5. ¡Solo 4 cables!

2

Instala la libreria

Tools → Manage Libraries → Buscar "LiquidCrystal I2C" → Instalar

3

Sube el codigo

Copia el codigo y subelo al Arduino

4

Ajusta el contraste

Si solo ves cuadros o nada, gira el potenciometro pequeño del modulo I2C

5

Verifica la direccion

Si no funciona, usa el escaner I2C para encontrar la direccion real

6

Personaliza

Cambia los mensajes, crea tus propios caracteres, integra con otros sensores

13

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