matrice-led.ino
La matrice 12x8 est la signature du R4 WiFi : ce script dessine une balle qui rebondit en diagonale, trame par trame. La bibliothèque officielle ArduinoLEDMatrix masque le multiplexage des lignes et le pilote WS2812 interne.
Matériel requis
Une Arduino UNO R4 WiFi (Renesas RA4M1 @ 14 MHz + ESP32-S3 Wi-Fi/BLE compagnon, matrice LED 12x8, LED RGB) alimentée par USB ou 6-24 V. Aucun : la matrice est embarquée sur la carte.
Câblage
Rien à câbler. La matrice consomme jusqu'à ~100 mA : alimenter par USB plutôt que par pin.
Fonctionnement
Chaque image est un tableau de 8 octets (1 bit = 1 LED) ; setFrame la charge, render l'affiche. La boucle déplace la balle et inverse la pente aux bords.
Exécution
Arduino IDE 2.x avec le core « Arduino UNO R4 Boards », carte « Arduino UNO R4 WiFi », port série puis Téléverser. Le coprocesseur ESP32-S3 se met à jour séparément si l'IDE le demande.
Variantes
Afficher du texte défilant (bitmap 5x7 par caractère), ou un visualiseur de réseau connecté via le Wi-Fi.
matrice-led.ino
// Matrice 12x8 du R4 WiFi via la bibliotheque officielle.
#include "ArduinoLEDMatrix.h"
ArduinoLEDMatrix matrice;
// Trame : 8 octets, 1 bit = 1 LED (12 colonnes utilisees).
#include <string.h>
uint8_t frame[8] = {0};
void setup() {
matrice.begin();
matrice.setBrightness(10);
Serial.begin(9600);
}
void loop() {
static unsigned long t0 = 0;
if (millis() - t0 < 120) return;
t0 = millis();
static int x = 0;
memset(frame, 0, sizeof(frame));
// Une balle qui rebondit en diagonale.
static int y = 0, dy = 1;
int col = x % 12;
frame[y] |= (1 << col);
frame[y] |= (1 << ((col + 1) % 12)); // petite trainee
x = (x + 1) % 12;
y += dy;
if (y == 0 || y == 7) dy = -dy;
matrice.setFrame(frame);
matrice.render();
}
// La bibliotheque est livree avec le core UNO R4 (Arduino IDE).