Arduino UNO Q - Le Bouton Contrôle la LED
Ce tutoriel montre comment utiliser un bouton pour contrôler une LED avec Arduino UNO Q. Deux applications sont couvertes :
Application 1 — La LED suit l'état du bouton :
- La LED s'allume quand le bouton est appuyé
- La LED s'éteint quand le bouton est relâché
Application 2 — La LED bascule à chaque appui :
- Chaque appui sur le bouton bascule la LED entre ALLUMÉE et ÉTEINTE
- Le relâchement du bouton ne change pas l'état de la LED
- Inclut des versions avec et sans anti-rebond (utilisant ezButton)

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Application 1 — La LED Suit l'État du Bouton
Code MCU
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.
Quand le bouton est appuyé (LOW), la LED s'allume. Quand il est relâché (HIGH), la LED s'éteint :
É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 composants : Connectez le bouton à la broche 7 et la LED (avec résistance 220Ω) à la broche 3 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.
- Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.

- Donnez un nom à l'application, par exemple : DIYables_ButtonLED
- 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.

- Maintenez le bouton appuyé — la LED devrait s'allumer. Relâchez-le — la LED devrait s'éteindre.
Application 2 — La LED Bascule à Chaque Appui
Code MCU — Sans Anti-rebond
Cette version détecte une transition HIGH→LOW et bascule la LED. Sans anti-rebond, le rebond rapide des contacts peut provoquer plusieurs basculements par appui :
Étapes Rapides
- Utilisez le même câblage et la même application que l'Application 1.
- Remplacez le programme par le code ci-dessus et cliquez sur Exécuter.
- Appuyez et relâchez le bouton plusieurs fois — la LED devrait basculer à chaque fois.
- Vous pouvez remarquer un comportement erratique (double basculement) — c'est causé par le rebond du bouton.
Code MCU — Avec Anti-rebond (Utilisant ezButton)
La bibliothèque ezButton gère l'anti-rebond automatiquement — chaque appui sur le bouton déclenche exactement un événement isPressed() :
Étapes Rapides
- Utilisez le même câblage et la même application que ci-dessus.
- Remplacez le programme par la version avec anti-rebond et cliquez sur Exécuter.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for ezButton created by ArduinoGetStarted.com and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Appuyez et relâchez le bouton plusieurs fois — la LED bascule maintenant exactement une fois par appui.
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.
- Le bouton et la LED sont connectés au MCU (STM32) — le bouton est câblé à une broche d'entrée numérique et la LED à une broche de sortie numérique du STM32. Le MCU gère la logique de basculement et l'anti-rebond en utilisant ezButton.
- Le MPU ne peut pas lire le bouton ou contrôler la LED directement — il doit demander l'état de la LED au MCU via Bridge.call().
- Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut rapporter l'état de la LED via Telegram à la demande.
- Communication : Bridge.call() côté Linux invoque Bridge.provide() 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 demande l'état de la LED → le MCU lit l'état actuel → le MCU rapporte ALLUMÉE ou ÉTEINTE → le MPU enregistre ou transmet.
Programme MCU — basculement bouton-LED avec Bridge et sortie du Moniteur :
Script Python (Arduino App Lab) — interrogation de l'état de la 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 ezButton 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 interroge l'état de la LED toutes les 3 secondes.
- Appuyez sur le bouton plusieurs fois pour basculer la LED.
- Vérifiez la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU pour voir les événements de basculement enregistrés en temps réel.
Sortie de la Console App Lab
Intégration Telegram
Vérifiez l'état actuel de la LED à distance depuis n'importe où via Telegram.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
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 l'état de la LED :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /state pour vérifier si la LED est actuellement ALLUMÉE ou ÉTEINTE.
É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.
- Testez : Appuyez sur le bouton pour basculer la LED, puis envoyez /state — confirmez que l'état correspond.
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
- Moniteur LED Telegram : Appuyez sur un bouton physique pour basculer une lampe et vérifiez son état à distance via Telegram
- Bascule d'alarme physique : Utilisez un bouton pour armer/désarmer une alarme et confirmez l'état depuis n'importe où
- Contrôleur de présentation : Basculez un afficheur ou une lumière de notification avec un bouton tout en vérifiant l'état à distance
- Interrupteur de mode nuit : Appuyez sur un bouton pour activer le mode nuit sur les appareils ; surveillez via Telegram
- Confirmation d'accès : Appuyez sur un bouton pour confirmer l'entrée ; vérifiez l'état de la LED/du portail via Telegram
Mettez-Vous au Défi
- Facile : Ajoutez une deuxième LED qui s'éteint quand la première s'allume (LEDs alternées)
- Moyen : Étendez le programme Bridge pour compter le nombre total d'appuis sur le bouton et exposer le compteur en tant que get_press_count()
- Avancé : Construisez un bot Telegram qui envoie automatiquement une notification chaque fois que l'état de la LED change — utilisez une boucle de surveillance en Python qui interroge l'état et le compare à la valeur précédente