Arduino UNO Q - Matrice LED

Vous souhaitez afficher du texte défilant ou des messages animés sur un grand panneau matriciel LED avec votre Arduino UNO Q ? Ce tutoriel vous montre comment — étape par étape.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Matrice LED

Pour la matrice LED intégrée 12×8 incorporée dans l'Arduino UNO Q lui-même, consultez le tutoriel Arduino UNO Q - Matrice LED Intégrée.

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×FC-16 LED Matrix 32x8
1×FC-16 LED Matrix 8x8
1×Fils de connexion
1×5V Power Adapter
1×Connecteur d'alimentation DC
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de la Matrice LED

Affichage à matrice LED

La matrice LED la plus couramment utilisée avec Arduino est la matrice LED à base de MAX7219. Faits essentiels :

  • Chaque bloc contient une grille 8×8 de 64 LEDs contrôlées par une puce MAX7219
  • Il existe deux principaux types de blocs : le module générique et le module FC-16
  • Les modules existent en configuration à bloc unique (8×8) ou multi-blocs (16×8, 32×8, 64×8)
  • Les blocs se connectent en chaîne daisy — les données passent d'un bloc à l'autre
  • Le contrôle se fait via SPI : CLK, MOSI (DIN) et une broche CS
  • Les bibliothèques MD_Parola et MD_MAX72xx gèrent toute la complexité

Ce tutoriel utilise une matrice LED FC-16 32×8 à 4 blocs (4 × 8×8 = 32 colonnes, 8 rangées). Le code peut être adapté à n'importe quelle taille.

Brochage

Brochage de la Matrice LED

Chaque bloc possède deux groupes de broches — un groupe d'entrée (connecté à Arduino UNO Q ou au bloc précédent) et un groupe de sortie (connecté au bloc suivant) :

  • VCC → alimentation 5V (externe — n'utilisez pas la broche 5V de l'Arduino UNO Q pour les grands affichages)
  • GNDGND
  • DIN → SPI MOSI (D11 sur le MCU Arduino UNO Q)
  • CLK → SPI SCK (D13 sur le MCU Arduino UNO Q)
  • CS → n'importe quelle broche numérique (D10 dans ce tutoriel)

Schéma de Câblage

※ Note:

La matrice LED peut consommer jusqu'à 1 A à luminosité maximale. Utilisez toujours une alimentation externe 5V plutôt que la broche 5V de l'Arduino UNO Q. L'Arduino UNO Q et la matrice LED peuvent partager le même adaptateur 5V et le même GND.

Le MCU Arduino UNO Q se connecte à la matrice LED en utilisant les broches SPI : D13 (SCK) et D11 (MOSI). Vous pouvez utiliser n'importe quelle broche numérique pour CS (D10 dans ce tutoriel).

Si la matrice LED ne comprend qu'un seul bloc :

  • Connectez le groupe de broches d'entrée au MCU Arduino UNO Q.
  • Laissez le groupe de broches de sortie non connecté.
Schéma de câblage matrice LED 8x8 FC-16 sur Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Schéma de câblage matrice LED 8x8 générique sur Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si la matrice LED est déjà assemblée en plusieurs blocs :

  • Connectez le groupe de broches d'entrée au MCU Arduino UNO Q.
  • Laissez le groupe de broches de sortie non connecté.
Schéma de câblage matrice LED sur Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous assemblez la matrice LED à partir de plusieurs blocs individuels :

  • Connectez le groupe de broches d'entrée du premier bloc au MCU Arduino UNO Q.
  • Connectez le groupe de broches de sortie de chaque bloc au groupe de broches d'entrée du bloc suivant.
  • Laissez le groupe de broches de sortie du dernier bloc non connecté.
Schéma de câblage matrice LED 32x8 FC-16 sur Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Schéma de câblage matrice LED 32x8 générique sur Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Matrice LED MCU Arduino UNO Q
VCC Alimentation externe 5V
GND GND (partagé avec le GND d'Arduino UNO Q)
DIN D11 (MOSI)
CLK D13 (SCK)
CS D10

Code Arduino UNO Q

L'Arduino UNO Q dispose de deux processeurs travaillant ensemble :

  • Le MCU STM32 pilote la matrice LED directement via SPI en utilisant la bibliothèque MD_Parola
  • Le MPU Qualcomm exécute Debian Linux et gère le Wi-Fi, Python et la connectivité cloud
  • Dans cette section, seul le MCU est programmé — le côté Linux reste inactif. Une section ultérieure montre comment les deux processeurs travaillent ensemble via Bridge.

Le sketch ci-dessous démontre du texte statique (gauche/centre/droite/inversé), un affichage de nombre et un message défilant :

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks (32x8 LED matrix) #define CS_PIN 10 // Arduino UNO Q MCU pin connected to CS MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { Serial.begin(115200); delay(1500); ledMatrix.begin(); ledMatrix.setIntensity(8); // brightness: 0 (dim) to 15 (bright) ledMatrix.displayClear(); Serial.println("Arduino UNO Q LED Matrix ready"); } void loop() { // Static text — left aligned ledMatrix.setTextAlignment(PA_LEFT); ledMatrix.print("Left"); delay(2000); // Static text — center aligned ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.print("Center"); delay(2000); // Static text — right aligned ledMatrix.setTextAlignment(PA_RIGHT); ledMatrix.print("Right"); delay(2000); // Inverted display ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(true); ledMatrix.print("Invert"); delay(2000); ledMatrix.setInvert(false); // Display a number ledMatrix.print(1234); delay(2000); // Scrolling text ledMatrix.displayClear(); ledMatrix.displayScroll("Hello, DIYables!", PA_CENTER, PA_SCROLL_LEFT, 80); while (!ledMatrix.displayAnimate()) {} // wait until scroll finishes delay(1000); }

Étapes Rapides

Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.

  • Connecter : Câblez la matrice LED au MCU Arduino UNO Q comme indiqué dans le schéma de câblage ci-dessus. Alimentez la matrice depuis un adaptateur 5V externe et connectez GND au GND de l'Arduino UNO Q.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Create New App.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : LedMatrix
  • Cliquez sur Create pour confirmer.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans ce fichier sketch. Gardez les autres fichiers par défaut.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Search for MD_Parola created by majicDesigns and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    MD_Parola majicDesigns

    Implemented using the MD_MAX72xx library for hardware control. Provides functions to simplify the implementation of text special effects on the LED matrix.

    3.7.2
    Install
    More Info
    • Search for MD_MAX72XX created by majicDesigns and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    MD_MAX72XX majicDesigns

    Allows the programmer to use the LED matrix as a pixel addressable display.

    3.5.1
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquer sur le bouton Run dans Arduino App Lab sur Arduino UNO Q

    La matrice LED fait défiler les alignements de texte, affiche un nombre, puis fait défiler "Hello, DIYables!" à travers l'affichage !

    Code Matrice LED Arduino UNO Q — Texte Défilant

    Lorsque vous devez afficher un long message sur un affichage à matrice LED qui est trop long pour tenir, vous pouvez utiliser l'effet de texte défilant.

    Ce code démontre comment faire défiler continuellement un message à travers l'affichage à matrice LED.

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks (32x8 LED matrix) #define CS_PIN 10 // Arduino UNO Q MCU pin connected to CS MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); ledMatrix.setIntensity(8); // brightness: 0 (dim) to 15 (bright) ledMatrix.displayClear(); ledMatrix.displayScroll("Hello, DIYables!", PA_CENTER, PA_SCROLL_LEFT, 80); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

    Pour voir plus d'effets de texte, consultez la Référence de la bibliothèque MD_Parola.

    Bridge : Linux + MCU

    Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q afin que le côté Linux puisse contrôler la matrice LED à distance :

    • La matrice LED est connectée au MCU (STM32) via SPI — le MCU pilote l'affichage directement
    • Le MPU ne peut pas accéder à la matrice LED directement — il doit envoyer des commandes au MCU via Bridge.call()
    • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut se connecter à Internet et déclencher des mises à jour d'affichage à distance
    • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
    • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur

    En résumé : Le MCU pilote la matrice LED → le MPU envoie des commandes de texte → le MPU peut mettre à jour l'affichage depuis n'importe où sur Internet.

    Code MCU (Bridge)

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h>#include "Arduino_RouterBridge.h" #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks (32x8 LED matrix) #define CS_PIN 10 // Arduino UNO Q MCU pin connected to CS MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); String last_text = ""; String display_text(String arg) { ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(false); ledMatrix.print(arg.c_str()); last_text = arg; Monitor.println("Display: " + arg); return "OK"; } String set_brightness(String arg) { int level = arg.toInt(); if (level < 0) level = 0; if (level > 15) level = 15; ledMatrix.setIntensity(level); Monitor.println("Brightness: " + String(level)); return "OK"; } String clear_display(String arg) { ledMatrix.displayClear(); last_text = ""; Monitor.println("Display cleared"); return "OK"; } String get_status(String arg) { if (last_text.length() == 0) return "Display: cleared"; return "Display shows: " + last_text; } void setup() { Bridge.begin(); Monitor.begin(); ledMatrix.begin(); ledMatrix.setIntensity(8); ledMatrix.displayClear(); Bridge.provide_safe("display_text", display_text); Bridge.provide_safe("set_brightness", set_brightness); Bridge.provide_safe("clear_display", clear_display); Bridge.provide("get_status", get_status); Monitor.println("Arduino UNO Q LED Matrix Bridge ready"); } void loop() {}

    Code Python (Bridge)

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-led-matrix */ from arduino.app_utils import * import time def loop(): # Display text result = Bridge.call("display_text", "Hello") print(result) time.sleep(2) result = Bridge.call("display_text", "1234") print(result) time.sleep(2) # Set brightness to dim result = Bridge.call("set_brightness", "3") print(result) time.sleep(1) result = Bridge.call("display_text", "Dim") print(result) time.sleep(2) # Set brightness back to medium result = Bridge.call("set_brightness", "8") print(result) time.sleep(1) # Get status result = Bridge.call("get_status") print(result) time.sleep(1) # Clear display result = Bridge.call("clear_display") print(result) time.sleep(2) App.run(user_loop=loop)

    Étapes Rapides

    • Connecter : Câblez la matrice LED à l'Arduino UNO Q comme indiqué dans le schéma de câblage, avec alimentation externe 5V.
    • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez que la carte soit détectée.
    • Créer une nouvelle application : Cliquez sur Create New App, nommez-la LedMatrixBridge, puis cliquez sur Create.
    • Coller le sketch MCU : Copiez le code MCU Bridge ci-dessus et collez-le dans sketch/sketch.ino.
    • Coller le code Python : Copiez le code Python Bridge ci-dessus et collez-le dans le fichier Python de l'application.
    • Téléverser : Cliquez sur le bouton Run dans Arduino App Lab.
    Cliquer sur le bouton Run dans Arduino App Lab sur Arduino UNO Q

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    [2026-04-29 09:00:01] Arduino UNO Q LED Matrix Bridge ready [2026-04-29 09:00:03] Display: Hello [2026-04-29 09:00:07] Display: 1234 [2026-04-29 09:00:11] Brightness: 3 [2026-04-29 09:00:15] Display cleared
    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:00:02] OK [2026-04-29 09:00:06] OK [2026-04-29 09:00:10] OK [2026-04-29 09:00:12] Display shows: Dim [2026-04-29 09:00:14] OK

    Telegram

    Contrôlez la matrice LED depuis n'importe où en utilisant Telegram — affichez des messages personnalisés ou des nombres sur le panneau depuis votre téléphone !

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.

    Code Python (Telegram)

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-led-matrix */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): global last_update_id print("Waiting for Telegram messages...") updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q LED Matrix Bot\n" "/show <text> - Display text on the matrix\n" "/brightness <0-15> - Set brightness level\n" "/clear - Clear the matrix\n" "/status - Get current display status") elif text.startswith("/show "): arg = text[6:].strip() if not arg: send_message(chat_id, "Usage: /show <text>") else: result = Bridge.call("display_text", arg) send_message(chat_id, result) elif text.startswith("/brightness "): arg = text[12:].strip() result = Bridge.call("set_brightness", arg) send_message(chat_id, result) elif text == "/clear": result = Bridge.call("clear_display") send_message(chat_id, result) elif text == "/status": result = Bridge.call("get_status") send_message(chat_id, result) else: send_message(chat_id, "Unknown command. Send /start for help.") App.run(user_loop=loop)

    Étapes Rapides

    • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot obtenu depuis BotFather.
    • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
    • Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
    • Cliquez sur le bouton Run. Ouvrez Telegram et envoyez des commandes à votre bot.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:15:00] Waiting for Telegram messages... [2026-04-29 09:15:08] Received: /show Hello World [2026-04-29 09:15:20] Received: /brightness 5 [2026-04-29 09:15:35] Received: /clear
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /show Hello World
    10:15 AM ✓✓
    OK
    10:16 AM
    /brightness 5
    10:17 AM ✓✓
    OK
    10:18 AM
    /status
    10:19 AM ✓✓
    Display shows: Hello World
    10:20 AM
    /clear
    10:21 AM ✓✓
    OK
    10:22 AM

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées de Projets

    Vous pouvez réaliser de nombreux projets créatifs en utilisant la matrice LED avec Arduino UNO Q :

    • Tableau d'affichage distant : Envoyer des messages personnalisés au panneau à matrice LED via Telegram — idéal pour les affichages de bureau, les enseignes de magasin ou les annonces d'événements
    • Affichage de score en direct : Afficher des scores sportifs ou les résultats de jeux sur la matrice, mis à jour en temps réel depuis le côté Linux via Bridge
    • Minuterie à rebours : Python compte à rebours et met à jour l'affichage matriciel chaque seconde jusqu'à zéro
    • Affichage météo IoT : Récupérer des données météo sur le MPU Linux et faire défiler la température et les conditions sur la matrice LED automatiquement
    • Panneau d'affichage Telegram : Permettre à n'importe qui dans un groupe de chat d'envoyer un message qui s'affiche sur le panneau matriciel via un bot Telegram partagé

    Défiez-vous

    Prêt à aller plus loin avec la matrice LED sur Arduino UNO Q ? Essayez ces défis :

    • Facile : Ajouter une commande Telegram /number <value> qui affiche un entier sur la matrice LED en utilisant ledMatrix.print(int).
    • Moyen : Ajouter une fonction Bridge /scroll <text> qui démarre une animation de défilement — utiliser un indicateur d'arrière-plan dans la fonction MCU loop() pour appeler displayAnimate() et displayReset() pendant que le défilement est actif.
    • Avancé : Construire un ticker d'actualités contrôlé par Telegram — accepter plusieurs messages via Telegram et les mettre en file d'attente, en affichant chacun en séquence sur la matrice sous forme de défilement continu.

    Vidéo

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !