En bref :
- Brancher bouton poussoir sur une carte Arduino demande peu de composants mais une bonne méthode : résistance pull-up/pull-down ou configuration interne pour éviter les états flottants.
- Le câblage bouton poussoir peut être sécurisé en utilisant la résistance de tirage interne de l’Arduino ou une résistance externe pour un comportement prévisible.
- Pour la programmation Arduino, deux écoles : filtrage matériel (RC) ou gestion logicielle (anti-rebond) ; les interruptions offrent une réactivité idéale pour les projets électroniques complexes.
- Des exemples concrets : allumer une LED, transformer un bouton en interrupteur, créer un digicode à 4 touches — tous détaillés ici pour un tutoriel Arduino 2025 pratique.
- Ressources utiles : choix de composants et installation de l’IDE pour démarrer rapidement.
Pourquoi utiliser un bouton poussoir avec Arduino : principes et bénéfices
Le bouton poussoir est un élément fondamental des interfaces physiques. Contrairement à un interrupteur bistable, un interrupteur poussoir est monostable : il revient automatiquement à sa position de repos.
Dans un projet électronique, il fournit une information binaire simple — appuyé / relâché — que l’Arduino lit via une entrée numérique Arduino. Cette simplicité en fait le point d’entrée idéal pour les interactions humaines : commandes, choix de menu, déclenchement d’événements.
La robustesse de l’interface dépend cependant de deux détails techniques souvent ignorés des débutants : la gestion des états flottants et le rebond mécanique.
État flottant et résistances de tirage
Quand un bouton est relâché, si rien ne tire la ligne à 0V ou 5V, l’entrée numérique peut rester dans un état indéfini (appelé état Z), provoquant des lectures aléatoires.
- Pull-down (résistance de rappel) : tire la broche à 0V lorsque le bouton est ouvert. Lecture : LOW quand relâché, HIGH quand appuyé.
- Pull-up (résistance de tirage) : tire la broche à 5V quand le bouton est ouvert. Lecture : HIGH quand relâché, LOW quand appuyé.
- Pull-up interne : l’Arduino propose des résistances intégrées activables via pinMode(pin, INPUT_PULLUP).
Pour démarrer sans câbler la résistance externe, il est courant d’activer le pull-up interne. Pour ceux qui préfèrent le câblage physique, une résistance de 10 kΩ est un bon point de départ.
Cas d’usage et avantages
Exemples concrets : déclencher une séquence de LEDs, naviguer dans un menu LCD, ou armer un mécanisme. L’avantage du bouton est sa simplicité de mise en œuvre et sa compatibilité avec la programmation Arduino basique ou avancée.
- Faible coût et disponibilité : de nombreux packs sur le marché pour différents formats.
- Compatibilité breadboard : certains boutons s’insèrent directement sur la platine, attention aux pattes en diagonale.
- Polyvalence : utilisable en INPUT, INPUT_PULLUP, ou avec interruptions matérielles pour une réactivité maximale.
| Concept | Effet | Quand l’utiliser |
|---|---|---|
| Pull-up interne | Simplifie le câblage | Prototypes rapides |
| Pull-down externe | Logique directe LOW=relâché | Préférence de logique |
| Interruption | Réponse instantanée | Entrées critiques |
Pour se fournir en composants, consulter une fiche produit dédiée aide à gagner du temps : BP UNO sur Nano-Ordinateur-Info est un exemple pratique pour choisir un bouton adapté.
Insight : comprendre l’état flottant et la logique pull-up/pull-down évite la majorité des erreurs de lecture.

Câblage bouton poussoir : schémas, erreurs fréquentes et astuces pratiques
Le câblage est l’étape où l’atelier Nova a cassé le plus de fils avant d’optimiser sa méthode. Les erreurs les plus courantes : utiliser les pattes du mauvais côté du bouton, ne pas tirer proprement la broche, ou oublier la résistance.
Un câblage bouton poussoir propre commence par un bon positionnement sur la breadboard. Les pattes en diagonale sont souvent reliées deux à deux ; utiliser deux pattes en diagonale permet d’éviter toute erreur d’orientation.
Schéma de base : pull-down et pull-up
Deux schémas basiques :
- Pull-down externe : bouton entre le 5V et la broche numérique ; une résistance 10 kΩ entre la broche et la masse (GND).
- Pull-up externe : bouton entre la broche et la masse ; résistance 10 kΩ entre la broche et le +5V.
Sur Arduino UNO, il est souvent préférable d’utiliser INPUT_PULLUP pour simplifier le câblage :
- Brancher le bouton entre la broche digitale et la masse (GND).
- Activer pinMode(pin, INPUT_PULLUP) dans le code.
| Élément | Connexion | Valeur recommandée |
|---|---|---|
| Résistance | Pull-up / Pull-down | 10 kΩ |
| LED | En série avec résistance | 220 Ω |
| Bouton | Broche digitale 5V/GND | Standard |
Astuce : ne plus jamais mal brancher le bouton
- Utiliser systématiquement deux pattes en diagonale pour l’insertion sur breadboard.
- Marquer les broches avec un feutre fin sur les prototypes pour éviter les confusions.
- Tester la continuité avec un multimètre avant d’alimenter le montage.
Exemple pratique : sur une carte UNO, connecter la broche digitale 2 au bouton, GND à l’autre patte du bouton, et activer INPUT_PULLUP. Le moniteur série affichera 1 quand le bouton est relâché et 0 lorsqu’il est appuyé.
Ressource utile pour l’IDE et la mise en place logicielle : suivre un guide pas à pas pour installer les outils nécessaires, disponible ici : Guide d’installation de l’IDE Arduino.
Insight : un câblage clair et standardisé évite des heures de debugging.
Programmation Arduino : anti-rebond, interruptions et exemples pratiques
La partie logicielle est souvent sous-estimée. Le rebond mécanique provoque de multiples transitions en quelques millisecondes, générant des détections fantômes si rien n’est fait.
Deux approches permettent de traiter ce phénomène : filtrage matériel et gestion logicielle. Chacune a ses avantages selon l’application.
Filtrage matériel (RC)
Un condensateur en parallèle avec le bouton et une résistance en série forment un filtre RC. Le condensateur absorbe les rebonds et la commutation ne se produit qu’après un temps de charge/décharge défini par R*C.
- Avantage : indépendance du code, fonctionne même si le loop() est long.
- Inconvénient : nécessite des composants supplémentaires et un réglage des valeurs pour chaque bouton.
| Technique | Pro | Con |
|---|---|---|
| Filtrage matériel | Fiable, pas de dépendance logicielle | Composants supplémentaires |
| Anti-rebond logiciel | Flexible, simple à coder | Peut rater des appuis si loop() trop long |
| Interruption | Très réactive | Complexité pour le partage de variables |
Anti-rebond logiciel
Méthode simple : lire la broche, attendre quelques millisecondes, relire pour confirmer. Exemple classique : lire, delay(50), relire.
- Implémentation minimale : utile pour prototypes
- Limite : si la boucle principale est trop lente, un appui bref peut être manqué
Utiliser des interruptions
Pour une réactivité maximale, les ports supportant les interruptions matérielles (par ex. pin 2 et 3 sur Arduino UNO) permettent de déclencher une routine immédiatement lors d’un changement d’état.
Attention aux variables partagées : utiliser volatile pour les variables modifiées en ISR.
Exemple d’utilisation : gérer un compteur d’événements ou un réveil de tâche dans un projet électronique où la latence doit être minimale. Pour un guide complet sur la configuration logicielle et l’IDE, consulter : installation de l’IDE Arduino.
Insight : choisir entre RC, debounce logiciel ou interruption dépend de la contrainte temps réel et de la complexité souhaitée.
Projets pratiques : allumer une LED, digicode et transformer un bouton en interrupteur
Rien de tel que des petits projets pour maîtriser le brancher bouton poussoir. Trois exercices progressifs permettent de couvrir l’essentiel.
1) Allumer une LED
Montage : bouton entre broche digitale et GND, LED sur une autre broche avec résistance de 220 Ω.
- Façon simple : lire la broche et écrire HIGH/LOW sur la LED.
- Astuce : toujours ajouter une résistance de 220 Ω pour protéger la LED.
| Composant | Connexion | Valeur |
|---|---|---|
| LED | Anode → pin 13, Cathode → résistance → GND | 220 Ω |
| Bouton | Pin 2 Bouton GND | — |
| Résistance | Pull-up interne | 10 kΩ (si externe) |
2) Transformer un bouton en interrupteur (latching software)
Technique : détecter le front descendant et basculer l’état stocké d’une variable. On évite ainsi de devoir maintenir le doigt appuyé pour garder la LED allumée.
- Utiliser INPUT_PULLUP pour simplifier le câblage.
- Garder une variable d’état et basculer son contenu lors d’une détection d’appui stable.
3) Digicode à 4 boutons
Exemple riche : quatre boutons reliés à 4 entrées numériques ; chaque appui bascule une position dans un tableau. Le code teste la séquence et renvoie un message sur le moniteur série.
- Intérêt : combine lecture multiple, anti-rebond, stockage de séquence.
- Extension possible : remplacer le moniteur série par un écran OLED et une sortie relais pour un contrôle d’accès.
Pour s’équiper avec des boutons colorés et variés, la section composants du site propose des options : choix de boutons BP UNO.
Insight : ces projets sont des briques réutilisables — comprendre une seule bien permet d’assembler des systèmes plus complexes.
Erreurs classiques, alternatives et bonnes pratiques pour aller plus loin
Dans l’atelier Nova, les projets qui foirent partagent souvent les mêmes symptômes : câblage aléatoire, manque d’anti-rebond, utilisation non adaptée des interruptions.
Voici les pièges à éviter et les alternatives pour des applications plus ambitieuses.
Erreurs courantes
- Oublier la résistance de la LED et griller la diode.
- Ignorer les états flottants : lectures incohérentes.
- Utiliser delay() de façon excessive, rater des appuis brefs.
| Problème | Symptômes | Solution |
|---|---|---|
| Rebonds | Détections multiples | Filtrage RC ou debounce logiciel |
| Appuis manqués | Loop lent | Interruption ou polling plus rapide |
| Broche flottante | Lecture aléatoire | Pull-up/pull-down |
Alternatives et évolutions
Pour des projets 2025 plus avancés :
- Utiliser des matrices de boutons pour multiplier les entrées avec peu de pins.
- Opter pour des boutons capacitifs si l’esthétique et la fiabilité sans contact sont importantes.
- Intégrer un microcontrôleur secondaire pour gérer les entrées et déléguer la logique à un MCU plus puissant.
Enfin, pour bien démarrer côté logiciel, installer et configurer l’IDE est une étape cruciale : voir la procédure d’installation et les bonnes pratiques sur installation de l’IDE Arduino et consulter la fiche produit du bouton pour choisir son composant : BP UNO détails.
Insight : corriger une erreur de base en début de projet économise des heures. Privilégier la simplicité et la reproductibilité.
Comment choisir entre pull-up interne et pull-down externe ?
Le pull-up interne est pratique pour des prototypes car il évite une résistance externe. Le pull-down externe peut être choisi pour conserver une logique où HIGH signifie appuyé. Le choix dépend de la lisibilité du code et des contraintes du projet.
Quelle valeur de résistance utiliser pour la pull-up/pull-down ?
Une résistance de 10 kΩ est la plus courante pour éviter les courants inutiles tout en garantissant une bascule propre. Pour des environnements bruyants électriquement, des valeurs plus faibles (4.7 kΩ) peuvent être utilisées.
Doit-on absolument gérer le rebond ?
Oui, le rebond provoque souvent des comportements indésirables : comptages erronés, actions répétées. Utiliser une méthode matérielle (RC), logicielle (debounce) ou des interruptions selon la contrainte temps réel.
Un bouton poussoir à 4 pattes est-il un dipôle ?
Oui : malgré 4 pattes, les contacts sont reliés deux à deux. Utiliser les pattes en diagonale pour garantir une connexion correcte sur une breadboard.