Arduino UNO Q - Faire Clignoter Plusieurs LEDs
Faire clignoter plusieurs LEDs indépendamment à des vitesses différentes est une tâche Arduino courante et visuellement satisfaisante. Dans ce tutoriel, vous apprendrez à programmer l'Arduino UNO Q pour faire clignoter deux, trois LEDs ou plus simultanément — chacune à son propre rythme — sans utiliser delay().
Dans ce tutoriel, vous apprendrez :
- Comment faire clignoter plusieurs LEDs à des vitesses différentes sur Arduino UNO Q
- Comment utiliser la bibliothèque ezLED pour gérer plusieurs LEDs proprement avec un tableau
- Comment programmer côté Linux (Python) et côté MCU (C/C++ Arduino) pour contrôler les motifs de clignotement de plusieurs LEDs depuis Linux
- Comment utiliser Telegram pour définir des motifs de clignotement individuels à distance sur Arduino UNO Q

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos de la LED
Apprenez-en plus sur la LED (brochage, fonctionnement, programmation) dans le Arduino UNO Q - LED - Clignoter.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code MCU — Faire Clignoter Plusieurs LEDs
L'Arduino UNO Q dispose de deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
Pour faire clignoter plusieurs LEDs simultanément sans delay(), nous utilisons la bibliothèque ezLED. Elle gère tout le timing non bloquant en interne, vous appelez simplement .blink() et .loop() — aucune gestion de millis() nécessaire.
- LED 1 (broche 7) : 800ms ALLUMÉE, 200ms ÉTEINTE — démarre immédiatement
- LED 2 (broche 8) : 500ms ALLUMÉE, 500ms ÉTEINTE — démarre immédiatement
- LED 3 (broche 9) : 500ms ALLUMÉE, 500ms ÉTEINTE — démarre après un délai de 500ms
Étapes Rapides
- Première utilisation de l'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Câbler les LEDs : Connectez trois LEDs (chacune avec une résistance 220Ω) aux broches 7, 8 et 9 selon le schéma de câblage.
- Connecter : Branchez l'Arduino UNO Q sur votre ordinateur avec un câble USB-C.
- Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q — cela peut prendre plusieurs minutes au premier lancement.
- Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.

- Donnez un nom à l'application, par exemple : DIYables_MultipleLED
- Cliquez sur Créer pour confirmer.
- Un ensemble de dossiers et de fichiers sera généré dans votre nouvelle application.

- Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le programme MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for ezLED created by ArduinoGetStarted.com and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser sur le STM32.

- Vérifier les LEDs : Les trois LEDs devraient clignoter à des vitesses différentes simultanément.
- Conseil : Changez les valeurs blink(on_ms, off_ms) pour personnaliser le timing de chaque LED — ou ajoutez une quatrième LED en ajoutant ezLED led4(PIN_LED_4) et en appelant led4.blink(...) et led4.loop().
Bonus : Code Plus Propre avec un Tableau de LEDs
Pour un code plus propre et plus évolutif, utilisez un tableau d'objets ezLED. Ajouter ou supprimer des LEDs ne nécessite que de modifier NUM_LED et les définitions de broches :
- Évolutivité : Pour ajouter une quatrième LED, changez NUM_LED à 4, ajoutez PIN_LED_4 et ajoutez-la à ledArray.
- Détails de la bibliothèque : En savoir plus sur la bibliothèque ezLED sur arduinogetstarted.com.
Programmation Bridge Linux + MCU
L'Arduino UNO Q dispose de deux processeurs fonctionnant ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre programme Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- Les LEDs sont connectées au MCU (STM32) — câblées à des broches numériques du STM32. Le MCU les fait clignoter en utilisant la bibliothèque ezLED avec un timing non bloquant.
- Le MPU ne peut pas contrôler les LEDs directement — il doit envoyer des commandes au MCU via Bridge.call(). Le MCU exécute les fonctions Bridge.provide_safe() enregistrées.
- Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et contrôler les motifs LED à distance.
- Communication : Bridge.call() côté Linux invoque Bridge.provide_safe() côté MCU
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement
En résumé : Le MPU envoie les commandes de motif de clignotement → le MCU les reçoit → le MCU met à jour les motifs de clignotement LED en temps réel.
Programme MCU — plusieurs LEDs avec contrôle de clignotement à distance :
Script Python (Arduino App Lab) — contrôle des motifs LED depuis Linux :
- Remarque : Assurez-vous que Bridge.begin() est appelé dans le programme MCU et que le programme est téléversé avant d'exécuter le script Python côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ou Serial1 (sur MCU) dans votre code — ces ports sont réservés par le routeur Arduino et y accéder brisera le Bridge.
Étapes Rapides
- Téléversez le programme MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le programme MCU Bridge ci-dessus dans sketch/sketch.ino, installez les bibliothèques ezLED et Arduino_RouterBridge, puis cliquez sur Exécuter.
- Ajoutez le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
- Exécutez l'application : Cliquez sur Exécuter — le côté Python fait défiler automatiquement différents motifs de clignotement.
- Vérifiez la console : Ouvrez l'onglet Console → sous-onglet Console Python pour voir quel motif est actif.
- Conseil : Appelez Bridge.call("stop_all") depuis Python pour arrêter toutes les LEDs en même temps.
Sortie de la Console App Lab
Intégration Telegram
Vous pouvez contrôler le motif de clignotement de chaque LED à distance via Telegram — définissez des vitesses de clignotement individuelles ou arrêtez toutes les LEDs depuis n'importe où.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Cette section couvre :
- Exécuter un script Python côté Linux de l'Arduino UNO Q pour écouter les messages Telegram
- Transférer les commandes de motif de clignotement vers des LEDs individuelles côté MCU via Bridge.call()
- Envoyer une réponse de confirmation à Telegram
Programme MCU : Conservez le même programme MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.
Script Python (Arduino App Lab) — bot Telegram pour le contrôle de plusieurs LEDs :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /blink 1 800 200 pour faire clignoter la LED 1 avec 800ms ALLUMÉE et 200ms ÉTEINTE.
- Envoyez /stop pour arrêter toutes les LEDs en même temps.
Étapes Rapides
- Téléversez le programme MCU : Utilisez le programme MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
- Collez le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
- Définissez votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
- Exécutez l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram immédiatement.
- Testez : Envoyez /blink 2 300 300 pour faire clignoter rapidement la LED 2, ou /stop pour tout éteindre.
- Conseil : Envoyez /blink 1 100 100 pour un effet stroboscopique très rapide sur la LED 1.
Sortie de la Console App Lab
ArduinoBot
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 d'Applications / Projets
Voici quelques idées de projets que vous pouvez construire avec plusieurs LEDs et Arduino UNO Q :
- Spectacle de lumières contrôlé par Telegram : Définissez différents motifs de clignotement pour chaque LED via Telegram et créez un affichage lumineux personnalisé
- Simulateur de feux de circulation : Utilisez des LEDs rouge, jaune et verte avec des motifs de clignotement temporisés contrôlés depuis Python
- Panneau d'état système : Chaque LED représente un état de service différent — clignote rapidement pour avertissement, stable pour OK, éteinte pour arrêté
- Émetteur de code Morse : Faites clignoter chaque LED avec un message encodé différent simultanément
- Séquenceur LED : Faites défiler les LEDs depuis le côté Python en une séquence en les allumant et éteignant successivement
Mettez-Vous au Défi
Essayez ces défis avec plusieurs LEDs et Arduino UNO Q :
- Facile : Ajoutez une quatrième LED au programme et configurez-la pour clignoter 250ms ALLUMÉE, 750ms ÉTEINTE
- Moyen : Étendez le programme Bridge pour exposer une fonction get_state(int led_num) qui retourne si une LED est actuellement ALLUMÉE ou ÉTEINTE
- Avancé : Construisez un bot Telegram qui accepte un motif nommé (ex. /pattern chase) et applique une séquence de clignotement prédéfinie sur les trois LEDs