15. Marquesina de texto en matriz LED 8×8
Texto que se desplaza por una matriz de 64 LEDs, como los paneles informativos. Aprende a representar caracteres como mapas de bits.
🧰 Lista de materiales
🎯 Qué vas a aprender
Cómo una imagen o letra se representa como mapa de bits (cada bit = un LED) y cómo crear animación desplazando columnas. El MAX7219 vuelve a hacer el trabajo pesado.
📚 Teoría: bitmaps y scroll
Una matriz 8×8 son 64 LEDs en filas y columnas. Cada fila se puede ver como un byte (8 bits): un 1 enciende ese LED, un 0 lo apaga. Una letra «A» es entonces 8 bytes. Para el scroll, desplazamos los datos una columna por fotograma.
🔌 Conexiones
| Pin módulo MAX7219 | Pin Arduino |
|---|---|
| VCC | 5 V |
| GND | GND |
| DIN | D11 |
| CS | D10 |
| CLK | D13 |
💻 Código completo
Usaremos la librería MD_MAX72XX + MD_Parola, especializada en texto desplazable.
// Marquesina de texto con MD_Parola
#include
#include
#include
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 1 // una matriz 8x8
#define CS_PIN 10
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
P.begin();
P.setIntensity(5);
P.displayClear();
P.displayText("HOLA AITOR", PA_CENTER, 80, 0,
PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}
void loop() {
if (P.displayAnimate()) {
P.displayReset(); // reinicia el scroll al terminar
}
} HARDWARE_TYPE depende del módulo concreto. Si el texto sale espejado o desordenado, prueba GENERIC_HW o ICSTATION_HW.🛠️ Montaje paso a paso
- Conecta el módulo (VCC, GND, DIN→D11, CS→D10, CLK→D13).
- Instala MD_MAX72XX y MD_Parola.
- Sube el sketch; si el texto sale raro, cambia HARDWARE_TYPE.
- Personaliza el mensaje y la velocidad de scroll.
🧩 Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
| Texto espejado | HARDWARE_TYPE incorrecto | Prueba otro tipo |
| Matriz en blanco | Cableado SPI | Revisa DIN/CLK/CS |
| Demasiado brillo | Intensidad alta | Baja setIntensity |
🚀 Para ir más lejos
- Encadena varias matrices subiendo
MAX_DEVICES. - Muestra iconos animados con bitmaps propios.