🛠 Apprivoiser la matrice LED 12x8 intégrée
Objetivos
Controlar la firma de la tarjeta: una matriz de 96 LED (12 columnas × 8 filas) soldada en la tarjeta, controlada mediante multiplexación directamente por el RA4M1 — las columnas están conectadas a los pines 12 a 23 (los pines A0 a A3 se comparten con la matriz) y las filas a los GPIO 24 a 31, no expuestos en los conectores. Encenderás columnas, entenderás el enmascaramiento bit a bit y luego mostrarás una animación.
Material
- 1 Arduino UNO R4 WiFi + cable USB-C
- Sin soldadura, sin componentes: todo está integrado. Los pines 12 a 23 también sirven como E/S, evite conectarlos mientras la matriz muestra algo.
Código completo
#include "Arduino_LED_Matrix.h"
ArduinoLEDMatrix matrix;
void setup {
matrix.begin;
}
void loop {
// Balayage : une colonne allumée qui se déplace.
for (uint8_t col = 0; col < 12; col++) {
matrix.beginFrame;
for (uint8_t c = 0; c < 12; c++) {
// Chaque setColumn reçoit un octet = masque des 8 lignes,
// bit de poids faible = ligne du bas.
matrix.setColumn(c, c == col ? B11111111 : B00000000);
}
matrix.show;
delay(80);
}
}
La biblioteca oficial Arduino_LED_Matrix también proporciona matrix.loadFrame(...) para tramas codificadas en 32 bits, y la clase AnimationEngine con modos listos para usar (SCROLLING, THROBBING, BLINKING). Para dibujar sin programar, el editor en línea Arduino Labs (labs.arduino.cc, herramienta LED Matrix) genera las tablas de tramas para pegar en el boceto.
Verificación esperada
Una barra vertical barre la matriz de izquierda a derecha en bucle. Pruebe B10000001 en lugar de B11111111: solo se encienden el primer y el último bit, lo que confirma la lectura bit a bit (LSB = fila inferior).
Errores frecuentes
- Olvidar
matrix.beginen setup: la matriz permanece apagada, sin mensaje de error. - Confundir
setColumn(máscara de 8 bits, una columna) con una coordenada x,y: no existesetPixelen la API de bajo nivel. - Modificar los pines 12 a 23 (incluidos A0 a A3) durante la visualización: la matriz parpadea o muestra cualquier cosa, ya que la multiplexación lee estos pines constantemente.
- Buscar la matriz en un bus I²C: está cableada mediante GPIO directo, a diferencia de los módulos matriciales clásicos tipo MAX7219.
- Escribir en loop un barrido sin
beginFrame/show: sin estas llamadas, no se transfiere ninguna imagen completa.
Otros tutoriales para esta placa
- Premier Blink sur la UNO R4 WiFi : la première UNO 32 bits
- Toucher capacitif : touchRead sans composant
- Se connecter au WiFi et lire l'heure NTP (WiFiS3)
- Inclinomètre sur la matrice : l'IMU LSM6DSV16X en I²C
- Serveur web embarqué : piloter la matrice depuis le navigateur
- Horloge persistante : RTC à pile + resynchronisation NTP
Ejemplos de código para esta placa
clignotante.inoArduinobouton-poussoir.inoArduinodac-analogique.inoArduinoentree-analogique.inoArduinopwm-respiration.inoArduinoservo-balayage.inoArduino