Arduino UNO Q - Boutons Multiples
Gérer plusieurs boutons simultanément sur Arduino UNO Q est facile avec la bonne approche. Dans ce tutoriel, vous apprendrez à gérer cinq boutons à la fois en utilisant la bibliothèque ezButton — avec anti-rebond complet et détection de pression/relâchement — puis à étendre le projet pour suivre les comptages de pressions à distance via Telegram.
Dans ce tutoriel, vous apprendrez :
- Comment câbler plusieurs boutons à Arduino UNO Q
- Comment lire et anti-rebondir plusieurs boutons simultanément en utilisant la bibliothèque ezButton
- Comment utiliser un tableau de boutons pour un code plus propre et évolutif
- Comment suivre les comptages de pressions via Bridge et les interroger à distance via Telegram

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos des Boutons
Découvrez les boutons (brochage, câblage, anti-rebond) dans ces tutoriels :
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code MCU — Boutons Multiples avec Anti-rebond
L'Arduino UNO Q dispose de deux processeurs : le STM32 MCU (gère le contrôle matériel en temps réel) et le Qualcomm MPU (exécute Debian Linux). Dans cette section, seul le STM32 MCU est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
La bibliothèque ezButton gère l'anti-rebond et la détection pression/relâchement pour chaque bouton automatiquement — aucun suivi manuel d'horodatage requis :
Étapes Rapides
- Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Câblez les boutons : Connectez cinq boutons sur les broches 2 à 6 selon le schéma de câblage. Chaque bouton a une broche sur GND et l'autre sur la broche de signal.
- Connectez : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- Ouvrez Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
- Créez une nouvelle App : Cliquez sur le bouton Create New App.

- Donnez un nom à l'App, par exemple : DIYables_MultiButton
- Cliquez sur Create pour confirmer.
- Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle App.

- Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
- 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.
- Téléversez : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.

- Appuyez sur les boutons un par un — appuyez et relâchez chaque bouton et voyez le résultat dans la section Bridge ci-dessous.
- Conseil Pro : Ajoutez du code d'action dans chaque bloc isPressed() / isReleased() pour contrôler des LEDs, des servos ou d'autres composants.
Code Plus Propre avec un Tableau de Boutons
Utiliser un tableau d'objets ezButton rend le code évolutif — ajouter plus de boutons ne nécessite que de changer BUTTON_NUM :
- Fonctionnement : La boucle traite tous les boutons de manière générique en utilisant l'index du tableau. Les événements pression/relâchement de chaque bouton déclenchent des actions indépendantes.
- Conseil Pro : Ajoutez un tableau de compteurs (int press_count[BUTTON_NUM] = {0}) et incrémentez press_count[i] à chaque isPressed() pour suivre combien de fois chaque bouton a été pressé.
Programmation Bridge Linux + MCU
L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- Tous les boutons sont connectés au MCU (STM32) — câblés aux broches d'entrée numériques du STM32. Le MCU gère l'anti-rebond et le comptage des pressions avec ezButton.
- Le MPU ne peut pas lire les boutons directement — il doit demander des données au MCU via Bridge.call(). Le MCU répond avec les comptages de pressions ou les réinitialise.
- Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut transmettre les comptages de pressions via Telegram et accepter des commandes de réinitialisation à distance.
- Communication : Bridge.call() côté Linux invoque des fonctions Bridge.provide() côté MCU
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement
En bref : Le MCU compte les pressions de boutons → le MPU demande les comptages → le MPU les transmet via Telegram.
Sketch MCU — boutons multiples avec comptage de pressions et Bridge :
Script Python (Arduino App Lab) — interroge les comptages de pressions depuis Linux :
- Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ni n'utilisez Serial1 (sur MCU) dans votre code — ils sont réservés par l'Arduino Router et y accéder cassera le Bridge.
Étapes Rapides
- Téléversez le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle App, collez le sketch Bridge MCU ci-dessus dans sketch/sketch.ino, installez les bibliothèques ezButton et Arduino_RouterBridge, et cliquez sur Run.
- Ajoutez le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même App.
- Exécutez l'App : Cliquez sur Run — le côté Python interroge les comptages de pressions toutes les 5 secondes.
- Appuyez sur les boutons plusieurs fois.
- Vérifiez la console : Ouvrez l'onglet Console → sous-onglet MCU Monitor pour voir les événements pression/relâchement.
Sortie de la Console App Lab
Intégration Telegram
Interrogez les comptages de pressions de boutons ou réinitialisez-les à distance 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.
Sketch MCU : Conservez le même sketch 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 suivi de boutons multiples :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /counts pour obtenir les comptages de pressions des cinq boutons.
- Envoyez /reset pour réinitialiser tous les comptages à zéro.
Étapes Rapides
- Téléversez le sketch MCU : Utilisez le sketch Bridge MCU de la section précédente (téléversez-le d'abord si ce n'est pas déjà fait).
- Collez le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre App dans Arduino App Lab.
- Définissez votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre token de bot réel.
- Exécutez l'App : Cliquez sur Run — le bot commence à écouter les messages Telegram.
- Testez : Appuyez sur chaque bouton plusieurs fois, puis envoyez /counts sur Telegram. Ensuite envoyez /reset pour effacer tous les comptages.
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
- Panneau clavier : Chaque bouton envoie un message Telegram différent — utile pour des préréglages rapides ou des commandes
- Compteur de votes : Chaque bouton enregistre un vote pour une option différente ; interrogez les résultats via Telegram
- Sélecteur de mode : Appuyez sur le bouton 1 pour le mode A, le bouton 2 pour le mode B — chacun déclenche une action différente sur le MPU
- Alarme multi-zones : Chaque bouton est lié à un capteur de zone différent ; les comptages de pressions enregistrent combien de fois chaque zone a été déclenchée
- Panneau de test à distance : Appuyez sur les boutons pour tester différentes fonctionnalités matérielles, avec les résultats envoyés via Telegram
Défiez-vous
- Facile : Ajoutez un sixième bouton au sketch sur la broche 7 et suivez son comptage de pressions de la même manière
- Moyen : Modifiez le sketch Bridge pour exposer get_count(int button_num) afin que Python puisse interroger les comptages individuels de boutons au lieu de tous à la fois
- Avancé : Construisez un bot Telegram qui envoie une alerte automatiquement lorsque le comptage de pressions d'un bouton dépasse un seuil (par ex. 10 pressions)