Arduino Mega - Bouton
Le bouton est un composant simple mais important utilisé dans de nombreux projets Arduino Mega. Il peut sembler difficile à cause de son fonctionnement et de la sensation qu'il procure lorsque vous le pressez, ce qui peut être déroutant pour les débutants. Ce guide est conçu pour aider les débutants à le comprendre facilement. Commençons !

※ Note:
Avant d'apprendre comment utiliser le bouton avec l'Arduino Mega, voici deux erreurs courantes que font les débutants :
- Problème d'entrée flottante
- Symptôme : Quand un bouton est connecté à une broche d'entrée de l'Arduino Mega, l'état de la broche n'est pas fiable et ne reflète pas le véritable état du bouton.
- Cause : La broche d'entrée n'a pas de résistance de rappel vers le bas (pull-down) ou vers le haut (pull-up).
- Solution : Ajouter une résistance pull-down ou pull-up à la broche d'entrée. Nous expliquerons plus en détail dans ce guide.
- Problème de rebonds (chattering)
- Symptôme : Le Mega lit le bouton et essaie de détecter une pression en surveillant les changements d'état (HIGH vers LOW, ou LOW vers HIGH). Mais avec une seule pression, le Mega peut penser qu'il y a plusieurs pressions.
- Cause : L'action mécanique du bouton fait basculer rapidement l'entrée entre LOW et HIGH après une pression.
- Solution : Utiliser un anti-rebond (debounce). Voir le tutoriel Arduino Mega button debounce pour les détails.
Note : Les rebonds n'affectent que les projets qui nécessitent un comptage exact des pressions. Dans d'autres applications, cela peut ne pas être un problème.
Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du Bouton
Le bouton poussoir, aussi appelé bouton tactile ou interrupteur momentané, est un interrupteur qui se ferme quand vous le pressez et le maintenez, et s'ouvre quand vous le relâchez. Les boutons poussoirs existent en différents types, principalement deux groupes :
- Boutons pour montage PCB (peuvent être utilisés sur une breadboard)
- Boutons pour montage sur panneau

Brochage
Les boutons pour montage PCB ont généralement quatre broches.

À l'intérieur, les broches sont connectées par paires. Vous n'avez donc besoin d'utiliser que deux broches, en choisissant une de chaque paire.
Il y a quatre façons de connecter le bouton, mais en réalité seulement deux car elles sont similaires. Voir l'image.

Un bouton a quatre broches, mais nous n'en utilisons que deux. Cela l'aide à rester stable sur le circuit imprimé et à résister quand on le presse.
Les boutons pour montage sur panneau ont généralement deux broches.

Le module bouton poussoir inclut une résistance pull-down intégrée, qui assure que la sortie reste LOW quand le bouton n'est pas pressé. Il a trois broches :
- GND : Connectez cette broche à la masse.
- VCC : Connectez cette broche à une alimentation 5V ou 3.3V.
- OUT : Connectez cette broche à une entrée numérique de votre Arduino.
Avec cette configuration, le module donne LOW quand le bouton n'est pas pressé et donne HIGH quand le bouton est pressé.
Comment ça Fonctionne
- Si vous ne pressez pas le bouton, la broche A n'est pas connectée à la broche B.
- Si vous pressez le bouton, la broche A est connectée à la broche B.

Arduino Mega - Bouton
Un côté du bouton se connecte à l'alimentation ou à la masse, et l'autre côté se connecte à une broche de l'Arduino Mega.
Nous pouvons savoir si le bouton est pressé en lisant la broche de l'Arduino Mega qui est configurée comme entrée.
État du Bouton et État de Pression
La façon dont l'état du bouton se rapporte au moment où il est pressé dépend de comment nous connectons le bouton à l'Arduino Mega et des paramètres de broche sur l'Arduino Mega.
Il y a deux façons simples d'utiliser un bouton avec un Arduino Mega.
- Connecter un côté du bouton à VCC et l'autre côté à une broche d'entrée Arduino Mega, avec une résistance pull-down vers la masse. Quand vous pressez le bouton, la broche sera HIGH. Quand elle n'est pas pressée, elle sera LOW. Vous devez utiliser une résistance externe.
- Connecter un côté du bouton à GND et l'autre côté à une broche d'entrée Arduino Mega, avec une résistance pull-up. Quand vous pressez le bouton, la broche sera LOW. Quand elle n'est pas pressée, elle sera HIGH. Vous pouvez utiliser une résistance interne ou externe ; la résistance interne est intégrée dans le Mega et peut être activée dans le code.
※ Note:
Si nous n'utilisons pas de résistance pull-down ou pull-up, la broche d'entrée est flottante quand le bouton n'est pas pressé. Cela signifie que l'état de la broche peut changer tout seul vers HIGH ou LOW, donnant de fausses lectures.
- Mauvaise pratique : Configurer la broche Arduino Mega comme entrée avec pinMode(BUTTON_PIN, INPUT) et aucune résistance pull-down ou pull-up.
- Bonne pratique : Configurer la broche Arduino Mega avec une résistance pull-up interne en utilisant pinMode(BUTTON_PIN, INPUT_PULLUP). Cela ne nécessite pas de résistance externe.
Pour aider les débutants, ce guide utilise la méthode la plus simple : configurer la broche Arduino Mega pour utiliser sa résistance pull-up intégrée, donc vous n'avez pas besoin d'une résistance externe. Les débutants n'ont pas à se soucier de connecter une résistance pull-up ou pull-down. Ils n'ont qu'à utiliser le code Arduino montré ici.
Diagramme de Câblage
- Diagramme de circuit pour Arduino Mega et un bouton monté sur PCB.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- Comment câbler l'Arduino Mega avec un bouton monté sur panneau

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Comment Programmer pour le Bouton
- Configure la broche 7 de l'Arduino Mega comme entrée avec la résistance pull-up intégrée en utilisant la fonction pinMode().
- Utilise digitalRead() pour vérifier l'état d'une broche de l'Arduino Mega.
※ Note:
Il y a deux façons courantes de procéder :
- Première : Quand l'entrée est HIGH, faire quelque chose. Quand l'entrée est LOW, faire le contraire.
- Seconde : Quand l'entrée change de LOW vers HIGH (ou HIGH vers LOW), faire quelque chose.
Choisissez une selon ce que vous voulez qu'il se passe. Par exemple, avec un bouton et une LED :
- Si vous voulez que la LED s'allume quand le bouton est pressé et s'éteigne quand il n'est pas pressé, utilisez la première façon.
- Si vous voulez que la LED bascule entre ON et OFF à chaque fois que vous pressez le bouton, utilisez la seconde façon.
Code Arduino Mega - Lecture de l'état du bouton
Étapes Rapides
Suivez ces étapes une par une.
- Si c'est votre première fois avec l'Arduino Mega, consultez le guide pour configurer l'Arduino Mega dans l'IDE Arduino
- Connectez le bouton à l'Arduino Mega selon le diagramme qui vous a été donné.
- Connectez la carte Arduino Mega à votre ordinateur avec un câble USB.
- Ouvrez l'IDE Arduino sur votre ordinateur.
- Choisissez la bonne carte (Arduino Mega) et le bon port COM.
- Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à votre Arduino Mega.

- Ouvrez le Moniteur Série.
- Pressez et relâchez le bouton plusieurs fois.
- Regardez le résultat dans le Moniteur Série.
1 signifie activé, 0 signifie désactivé.
Explication du Code
L'explication se trouve dans les commentaires du code Arduino ci-dessus.
Code Arduino Mega - Détection des événements de pression et de relâchement du bouton
Modifions le code pour qu'il puisse détecter quand les boutons sont pressés et relâchés.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour télécharger le code sur l'Arduino Mega.
- Ouvrez le Moniteur Série.
- Pressez et relâchez le bouton.
- Regardez le résultat dans le Moniteur Série.
※ Note:
- Même si vous pressez et relâchez le bouton une fois, le Moniteur Série pourrait afficher plusieurs événements de pression et de relâchement. Ce problème courant s'appelle les rebonds de bouton. Vous pouvez en apprendre plus dans le Arduino Mega - Bouton - Anti-rebond.
- Pour simplifier les choses pour les débutants qui utilisent plusieurs boutons, nous avons créé une bibliothèque appelée ezButton. Vous pouvez apprendre sur la bibliothèque ezButton.
- Si vous utilisez le module bouton, configurez la broche en mode entrée avec pinMode(BUTTON_PIN, INPUT). Avec cette configuration, le module donne LOW quand le bouton n'est pas pressé et HIGH quand il est pressé.