Arduino UNO R4 - Bouton

Le bouton est un composant simple mais important utilisé dans de nombreux projets Arduino UNO R4. Il peut sembler compliqué en raison de ses propriétés mécaniques et physiques, ce qui peut être difficile pour les débutants. Ce tutoriel est conçu pour aider les débutants à le comprendre facilement. Commençons !

Bouton Arduino UNO R4

※ Note:

Avant d'apprendre comment utiliser le bouton avec l'Arduino UNO R4, nous tenons à mettre en évidence deux erreurs courantes souvent rencontrées par les débutants :

  1. Le problème d'entrée flottante:
    • Symptôme : Lorsqu'un bouton est connecté à une broche d'entrée de l'Arduino UNO R4, l'état de la broche d'entrée est imprévisible et ne reflète pas l'état du bouton.
    • Cause : La broche du bouton n'est pas reliée à une résistance de tirage vers le bas ou vers le haut.
    • Solution : Relier une résistance de tirage vers le bas ou vers le haut à la broche d'entrée. Plus de détails seront fournis plus tard dans ce tutoriel.
  • Le phénomène de rebondissement:
    • Symptôme : Le code de l'Arduino UNO R4 lit l'état du bouton et tente d'identifier les événements d'appui en détectant des changements d'état (de HIGH à LOW, ou de LOW à HIGH). Cependant, lorsque le bouton est appuyé une seule fois, l'Arduino UNO R4 peut détecter plusieurs pressions.
    • Cause : Des propriétés mécaniques font basculer rapidement l'état de la broche d'entrée entre LOW et HIGH à plusieurs reprises lors d'une seule pression.
    • Solution : Mettre en œuvre une gestion anti-rebond. Plus de détails seront dans le tutoriel Arduino UNO R4 - Bouton - anti-rebond..

    Le rebondissement n'affecte que les applications qui exigent un comptage précis des appuis sur le bouton. Dans d'autres applications, cela peut ne pas poser de problème.

    À propos du bouton

    Le bouton poussoir, également connu sous le nom de bouton tactile ou d'interrupteur momentané, est un interrupteur qui se ferme lorsque vous l'appuyez et le maintenez enfoncé, et s'ouvre lorsque vous le relâchez. Les boutons poussoirs existent en différents types, principalement divisés en deux catégories :

    • Push buttons for PCB mounting (can be used on a breadboard)
    • Push buttons for mounting on a panel
    Bouton-poussoir Arduino UNO R4

    Schéma de brochage

    Les boutons montés sur PCB ont généralement quatre broches.

    Schéma des broches du bouton

    Ces broches sont reliées entre elles à l'intérieur par paires, donc nous n'avons besoin d'utiliser que deux des quatre broches qui ne sont pas reliées entre elles à l'intérieur.

    Il y a quatre façons de connecter le bouton, mais en réalité deux, car elles sont similaires (voir l'image).

    Comment utiliser le bouton

    Un bouton a quatre broches, mais pourquoi n'en utilisons-nous que deux ? ⇒ Cela sert à le maintenir stable sur la carte de circuit imprimé et à résister à la pression.

    Les boutons à montage sur panneau ont généralement deux broches.

    Schéma de brochage d'un bouton-poussoir à deux broches
    image source: diyables.io

    Le module de bouton-poussoir comprend une résistance de tirage vers le bas intégrée, qui assure que la sortie reste à l'état bas lorsque le bouton n'est pas enfoncé. Il possède trois broches :

    • GND: Connectez cette broche à la masse.
    • VCC: Connectez cette broche à une alimentation de 5 V ou 3,3 V.
    • OUT: Connectez cette broche à une entrée numérique de votre Arduino.

    Avec cette configuration, le module émet LOW lorsque le bouton n'est pas enfoncé et émet HIGH lorsque le bouton est enfoncé.

    Comment cela fonctionne

    • Lorsque le bouton n'est pas enfoncé, les broches A et B ne sont pas connectées.
    • Lorsque le bouton est enfoncé, les broches A et B sont connectées.
    Comment fonctionne le bouton

    Arduino UNO R4 - Bouton

    Une broche du bouton se connecte à VCC ou à GND, et l'autre broche se connecte à une broche sur l'Arduino UNO R4.

    Nous pouvons déterminer si le bouton est enfoncé ou non en vérifiant l'état d'une broche sur l'Arduino UNO R4 configurée comme entrée.

    État du bouton et état d'appui

    La relation entre l'état du bouton et l'état appuyé dépend de la façon dont nous connectons le bouton à l'Arduino UNO R4 et des réglages de la broche de l'Arduino UNO R4.

    Il y a deux façons d'utiliser un bouton avec l'Arduino UNO R4:

    1. Connectez une broche du bouton à VCC et l'autre à une broche de l'Arduino UNO R4 avec une résistance de pull-down.
      • Lorsque le bouton est enfoncé, l'état de la broche de l'Arduino UNO R4 est HAUT. Sinon, l'état de la broche de l'Arduino UNO R4 est BAS.
      • Vous DEVEZ utiliser une résistance externe.
  • Connectez une broche du bouton à GND et l'autre à une broche de l'Arduino UNO R4 avec une résistance de pull-up.
    • Lorsque le bouton est enfoncé, l'état de la broche de l'Arduino UNO R4 est BAS. Sinon, l'état de la broche de l'Arduino UNO R4 est HAUT.
    • Vous pouvez utiliser soit une résistance interne soit une résistance externe. La résistance interne est intégrée dans l'Arduino UNO R4 et peut être activée via le code Arduino.

    ※ Note:

    Si nous n'utilisons pas de résistance de tirage vers le haut ou vers le bas, la broche d'entrée est « flottante » lorsque le bouton n'est pas enfoncé. Cela signifie que l'état de la broche peut changer de manière imprévisible vers HIGH ou LOW, entraînant des lectures incorrectes.

    • La pire pratique : Configurer la broche Arduino UNO R4 comme entrée en utilisant pinMode(BUTTON_PIN, INPUT) sans aucune résistance de tirage vers le bas ni vers le haut.
    • La meilleure pratique : Configurer la broche Arduino UNO R4 avec une résistance de tirage interne (pull-up) en utilisant pinMode(BUTTON_PIN, INPUT_PULLUP). Cela ne nécessite pas de résistance externe.

    Pour faciliter les choses pour les débutants, ce tutoriel utilise la méthode la plus simple : configurer la broche de l'Arduino UNO R4 en entrée pull-up interne sans avoir besoin d'une résistance externe. Les débutants n'ont pas à se soucier de connecter la résistance de pull-up ou de pull-down. Ils n'ont qu'à utiliser le code Arduino fourni.

    Diagramme de câblage

    • Schéma de câblage pour Arduino UNO R4 et bouton monté sur PCB
    Schéma de câblage du bouton Arduino UNO R4

    Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

    • Schéma de câblage pour Arduino UNO R4 et bouton monté sur panneau
    Schéma de câblage du bouton-poussoir à deux broches pour Arduino UNO R4

    Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

    Voir Comment alimenter l'Arduino UNO R4..

    Comment programmer pour le bouton

    • Configure la broche 7 de l'Arduino UNO R4 en tant qu'entrée pull-up interne en utilisant la fonction pinMode().
    pinMode(7, INPUT_PULLUP);
    • Utilise la fonction digitalRead() pour vérifier l'état de la broche de l'Arduino UNO R4.
    int button_state = digitalRead(BUTTON_PIN);

    ※ Note:

    Il existe deux cas d'utilisation courants :

    • Le premier : lorsque l'entrée est à un niveau élevé, effectuer une action. Lorsque l'entrée est à un niveau bas, effectuer l'action opposée.
    • Le second : lorsque l'entrée passe de bas à élevé (ou élevé à bas), effectuer une action.

    Selon l'objectif, nous sélectionnons l'une de ces options.

    Par exemple, lorsqu'on utilise un bouton pour contrôler une LED :

    • Si nous avons besoin que la LED s'allume lorsque le bouton est enfoncé et s'éteigne lorsqu'il n'est pas enfoncé, nous devrions choisir le premier scénario.
    • Si nous voulons que la LED bascule entre allumé et éteint à chaque fois que le bouton est enfoncé, nous devrions opter pour le deuxième scénario.

    Arduino UNO R4 Code - Lecture de l'état du bouton

    #define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the pushbutton pin as a pull-up input pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: int button_state = digitalRead(BUTTON_PIN); // print out the button's state Serial.println(button_state); delay(500); }

    Étapes rapides

    Suivez ces instructions étape par étape :

    • Si c'est la première fois que vous utilisez l'Arduino UNO R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
    • Connectez le bouton à l'Arduino UNO R4 selon le schéma fourni.
    • Connectez la carte Arduino UNO R4 à votre ordinateur à l'aide d'un câble USB.
    • Lancez l'IDE Arduino sur votre ordinateur.
    • Sélectionnez la carte Arduino UNO R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le 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 UNO R4.
    Arduino IDE - Comment téléverser du code
    • Ouvrez le moniteur série.
    • Appuyez et relâchez le bouton plusieurs fois.
    • Vérifiez le résultat sur le moniteur série.
    COM6
    Send
    1 1 1 0 0 0 0 0 0 1 1 1
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

    1 signifie ON, 0 signifie OFF.

    Explication du code

    L'explication se trouve dans la section des commentaires du code Arduino ci-dessus.

    Code Arduino UNO R4 - Détection de l'appui et du relâchement du bouton

    Modifions le code pour reconnaître quand les boutons sont enfoncés et relâchés.

    /* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-r4/arduino-uno-r4-button */ #define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button int button_state; // the current state of button int prev_button_state = LOW; // the previous state of button void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the pushbutton pin as a pull-up input pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: button_state = digitalRead(BUTTON_PIN); if (prev_button_state == HIGH && button_state == LOW) Serial.println("The button is pressed"); else if (prev_button_state == LOW && button_state == HIGH) Serial.println("The button is released"); // save the last state prev_button_state = button_state; }

    Étapes rapides

    • Copiez le code ci-dessus et collez-le dans l'IDE Arduino
    • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code vers l'Arduino UNO R4.
    • Ouvrez le Moniteur série.
    • Appuyez sur le bouton et relâchez-le.
    • Vérifiez le résultat dans le Moniteur série.
    COM6
    Send
    The button is pressed The button is released
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

    ※ Note:

    • Même si vous appuyez et relâchez le bouton une seule fois, le Moniteur série peut afficher plusieurs événements d'appui et de relâchement. Ce comportement habituel est connu sous le nom de « phénomène de rebondissement ». Vous pouvez trouver plus de détails dans le Arduino UNO R4 - Bouton - anti-rebond..
    • Pour simplifier le processus pour les débutants utilisant plusieurs boutons, nous avons développé une bibliothèque nommée ezButton. Vous pouvez en savoir plus sur la bibliothèque ezButton ici.
    • Si vous utilisez le module bouton, définissez la broche en mode entrée en utilisant pinMode(BUTTON_PIN, INPUT). Dans cette configuration, le module renvoie LOW lorsque le bouton n'est pas enfoncé et HIGH lorsque le bouton est enfoncé.

    Vidéo

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !