Crear caracteres personalizados en una LCD
En una pantalla LCD, podemos diseñar y mostrar nuestros propios caracteres usando una matriz de 5x8 píxeles. ¡Imagina que tienes una mini cuadrícula donde puedes encender o apagar pequeños puntos (píxeles) para dibujar lo que quieras! Veamos paso a paso cómo hacerlo:
1. Matriz de 5x8 píxeles
Cada carácter en la pantalla LCD está formado por una cuadrícula de 5 columnas y 8 filas.
Los píxeles de esta matriz pueden estar:
Encendidos (1) → Se iluminan.
Apagados (0) → No se iluminan.
2. ¿Cómo funcionan los 8 dígitos binarios?
Aunque cada fila de la matriz se representa con 8 dígitos binarios, los primeros 3 siempre son 0 porque la matriz solo tiene 5 columnas.
Lo único que configuramos son los 5 píxeles activos (los últimos 5 dígitos).
3. Convierte el código binario a hexadecimal
Para que el Arduino entienda tu diseño, debes convertir el código binario de cada fila a hexadecimal (base 16).
Aquí te explico cómo:
1. Agrupa los dígitos binarios en bloques de 4.
Ejemplo: 0 0 0 1 0 1 0 1 → 0001 y 0101.
2. Convierte cada bloque en su valor hexadecimal usando las posiciones (8, 4, 2, 1):
0001 = 1.
0101 = 5.
3. Escribe el resultado en hexadecimal:
1 y 5 → 0x15 (el prefijo 0x indica hexadecimal).
4. Envía tu diseño al Arduino
Usa una byte array para guardar los códigos de cada fila.
Este array se envía a la CG-RAM (Character Generator RAM) de la pantalla LCD.
Ejemplo de array hexadecimal
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7
byte customChar[] = {
0x00,
0x00,
0x0A,
0x15,
0x11,
0x0A,
0x04,
0x00
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, customChar);
lcd.home();
lcd.write(0);
}
void loop() { }
Ejemplo de array binario
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7
byte customChar[] = {
B00000,
B00000,
B01010,
B10101,
B10001,
B01010,
B00100,
B00000
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, customChar);
lcd.home();
lcd.write(0);
}
void loop() { }
Tips Finales
Si no quieres calcular píxeles manualmente, hay generadores en línea que convierten tus dibujos en binario automáticamente, como: https://maxpromer.github.io/LCD-Character-Creator/
¡Dibuja y muestra tu carácter personalizado!
Queremos ver tu creatividad en acción. Mándanos una foto de tu práctica terminada al correo [w4st.org@gmail.com] y la agregaremos a nuestra Galería de Proyectos Estrella. ¡Sé parte de nuestra comunidad y muestra tu creatividad!