ESP32 C3 Super Mini - Bouton

L'apprentissage de l'utilisation d'un bouton avec votre ESP32 C3 Super Mini est l'une des compétences les plus importantes pour tout projet Arduino. Ce didacticiel facilite la compréhension du câblage des boutons, de la programmation et du dépannage courant pour les débutants.

Dans ce didacticiel, vous apprendrez:

ESP32 C3 Super Mini - Bouton

※ Note:

Avant de présenter le bouton, nous aimerions signaler qu'il y a deux erreurs courantes que les débutants rencontrent généralement:

  1. Le problème des entrées flottantes:
    • Symptôme: Lors de la connexion d'un bouton à la broche d'entrée ESP32 C3 Super Mini, l'état de la broche d'entrée est aléatoire et ne correspond pas à l'état d'appui du bouton.
    • Cause: La broche du bouton N'UTILISE PAS une résistance de tirage ou une résistance de tirage.
    • Solution: ⇒ Utilisez une résistance de tirage ou une résistance de tirage sur la broche d'entrée. Le détail sera décrit plus tard dans ce didacticiel.
  • Le phénomène de chattering
    • Symptôme: Le code sur l'ESP32 C3 Super Mini lit l'état du bouton et identifie l'événement d'appui en détectant le changement d'état (HIGH à LOW, ou LOW à HIGH). Lorsque le bouton est réellement appuyé une seule fois, le code ESP32 C3 Super Mini détecte plusieurs appuis plutôt qu'une fois.
    • Cause: En raison des caractéristiques mécaniques et physiques, lorsque vous appuyez une seule fois sur un bouton, l'état de la broche d'entrée bascule rapidement entre LOW et HIGH plusieurs fois plutôt qu'une fois
    • Solution: ⇒ Antirebond. Le détail sera décrit dans le didacticiel ESP32 C3 Super Mini - Bouton - Antirebond.

    Le phénomène de chattering ne cause une défaillance que dans certains types d'applications qui nécessitent de détecter exactement le nombre d'appuis. Dans certains types d'applications, c'est inoffensif.

    Matériel Requis

    1×ESP32 C3 Super Mini
    1×Câble USB Type-C
    1×Bouton avec Capuchon Montage Breadboard
    1×Ensemble de Boutons Montage Breadboard
    1×Bouton Poussoir Montage Panneau
    1×Module bouton poussoir
    1×Plaque d'essai
    1×Fils de Liaison
    1×(Optionnel) Connecteur d'Alimentation CC

    Ou vous pouvez acheter les kits suivants:

    1×Kit de Capteurs DIYables (18 capteurs/écrans)
    Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

    À Propos du Bouton

    Un bouton poussoir est un simple commutateur qui se ferme lorsqu'il est appuyé et s'ouvre lorsqu'il est relâché.

    Types courants de boutons:

    • Boutons poussoirs montés sur PCB (parfaits pour les breadboards)
    • Boutons poussoirs montés en panneau (pour les boîtiers de projet)
    • Modules de bouton (avec résistances de tirage intégrées)

    Pourquoi les boutons sont utiles:

    • Entrée utilisateur simple pour les projets ESP32 C3 Super Mini
    • Contrôler les LED, les moteurs et autres sorties
    • Déclencher les actions et les événements dans votre code
    Bouton poussoir ESP32 C3 Super Mini

    Disposition des Broches du Bouton

    Bouton Montage PCB (4 broches)

    Un bouton montage PCB a quatre broches connectées en interne par paires.

    Disposition des Broches du Bouton

    Points clés:

    • Seulement deux broches sont nécessaires (de paires différentes)
    • Quatre options de câblage existent, mais elles se réduisent à deux méthodes pratiques
    • Quatre broches offrent une stabilité contre la force d'appui
    Comment Utiliser un Bouton

    Bouton Montage Panneau (2 broches)

    Un bouton montage panneau a deux simples broches.

    Disposition des Broches du Bouton Poussoir à Deux Broches
    image source: diyables.io

    Module Bouton (3 broches)

    Le module de bouton comprend une résistance de tirage intégrée pour un fonctionnement fiable.

    • GND: Connectez à la masse
    • VCC: Connectez à l'alimentation 3.3V
    • OUT: Connectez à la broche d'entrée numérique ESP32 C3 Super Mini (sort LOW lorsqu'il n'est pas appuyé, HIGH lorsqu'il est appuyé)

    Comment Fonctionne un Bouton

    Le bouton connecte ou déconnecte deux broches en fonction de son état.

    • Lorsqu'il est appuyé: La broche A se connecte à la broche B
    • Lorsqu'il est relâché: La broche A se déconnecte de la broche B
    Comment Fonctionne un Bouton

    ESP32 C3 Super Mini - Bouton

    Une broche du bouton se connecte à une broche d'entrée numérique ESP32 C3 Super Mini, l'autre se connecte à VCC ou GND.

    Lecture de l'état du bouton:

    • Votre code ESP32 lit l'état de la broche d'entrée
    • L'état vous indique si le bouton est appuyé ou non

    État d'Entrée et État d'Appui

    La relation entre l'état de la broche d'entrée et l'appui sur le bouton dépend de votre configuration de câblage.

    Deux méthodes de câblage courantes:

    1. Bouton connecté à VCC:
      • Nécessite une résistance de tirage
      • Bouton appuyé = signal HIGH
      • Bouton relâché = signal LOW
  • Bouton connecté à GND (recommandé pour les débutants):
    • Nécessite une résistance de tirage
    • Bouton appuyé = signal LOW
    • Bouton relâché = signal HIGH

    ※ Note:

    Si ni une résistance de tirage ni une résistance de tirage n'est utilisée, l'état de la broche d'entrée est aléatoire entre HIGH ou LOW (instable, non fixe) lorsque le bouton N'EST PAS appuyé. C'est ce qu'on appelle le "problème d'entrée flottante". Cela entraîne une défaillance.

    Conseil pour débutant:

    • Utilisez la résistance de tirage interne du ESP32 (aucun composant externe requis)
    • Simplifie le câblage et réduit les exigences matérielles

    Schéma de Câblage entre Bouton et ESP32 C3 Super Mini

    Voici comment câbler différents types de boutons à votre ESP32 C3 Super Mini.

    Câblage avec bouton montage PCB:

    Schéma de Câblage du Bouton ESP32 C3 Super Mini

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

    Broche du Bouton Broche ESP32 C3 Super Mini
    Broche A GPIO7
    Broche B GND

    Câblage avec bouton montage panneau:

    Schéma de Câblage du Bouton Poussoir à Deux Broches ESP32 C3 Super Mini

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

    Broche du Bouton Broche ESP32 C3 Super Mini
    Broche 1 GPIO7
    Broche 2 GND

    Comment Programmer le Bouton

    La programmation d'un bouton sur l'ESP32 C3 Super Mini implique deux étapes simples.

    Étape 1: Initialiser la broche avec tirage interne:

    pinMode(D7, INPUT_PULLUP); // config GPIO7 as input pin and enable the internal pull-up resistor

    Étape 2: Lire l'état du bouton:

    int button_state = digitalRead(BUTTON_PIN);

    Deux cas d'utilisation courants:

    ※ Note:

    Il y a deux cas d'utilisation largement utilisés:

    • Le premier cas d'utilisation: Si l'état d'entrée est HIGH, faites quelque chose. Si l'état d'entrée est LOW, faites une autre chose.
    • Le deuxième cas d'utilisation: Si l'état d'entrée change de LOW à HIGH, faites quelque chose. Si l'état d'entrée change de HIGH à LOW, faites une autre chose.

    Selon l'application, l'un d'eux est utilisé. Par exemple, dans le cas d'utiliser un bouton pour contrôler une LED:

    • Si nous voulons allumer la LED lorsque le bouton est appuyé et l'éteindre lorsque le bouton N'EST PAS appuyé, nous DEVONS utiliser le premier cas.
    • Si nous voulons basculer la LED entre ON et OFF à chaque appui sur le bouton, nous DEVONS utiliser le deuxième cas.

    Exemple: Détection du changement d'état de LOW à HIGH:

    #define BUTTON_PIN 7 // GPIO7 pin connected to button int prev_state = HIGH; // the previous state from the input pin int button_state; // the current reading from the input pin void setup() { Serial.begin(115200); // initialize the pushbutton pin as an pull-up input pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: button_state = digitalRead(BUTTON_PIN); if(prev_state == LOW && button_state == HIGH) Serial.println("The state changed from LOW to HIGH"); // save the last state prev_state = button_state; }

    Code ESP32 C3 Super Mini

    Ce code lit et affiche l'état du bouton sur le Moniteur Série.

    Ce que le code fait:

    • Configure la broche D2 comme entrée avec résistance de tirage interne
    • Lit continuellement l'état du bouton
    • Imprime l'état (HIGH ou LOW) sur le Moniteur Série
    • Se met à jour toutes les 100 millisecondes

    Étapes Rapides

    • Nouveau sur Arduino? Commencez par notre guide Démarrage ESP32 C3 Super Mini d'abord.
    • Câbler les composants: Suivez le schéma de câblage ci-dessus.
    • Connecter votre carte: Branchez l'ESP32 C3 Super Mini à votre ordinateur via le câble USB.
    • Ouvrir l'IDE Arduino: Lancez le logiciel sur votre ordinateur.
    • Sélectionner votre carte: Choisissez ESP32 C3 Super Mini et le bon port COM.
    • Télécharger le code: Copiez le code ci-dessous et collez-le dans l'IDE Arduino.
    #define BUTTON_PIN 7 // The ESP32 C3 SuperMini pin GPIO7 pin connected to button void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the button pin as an pull-up input (HIGH when the switch is open and LOW when the switch is closed) 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); }
    • Compiler et télécharger: Cliquez sur le bouton Télécharger dans l'IDE Arduino.
    Comment télécharger le code ESP32 C3 Super Mini sur l'IDE Arduino
    • Ouvrir le Moniteur Série: Cliquez sur l'icône du Moniteur Série dans l'IDE Arduino.
    Comment ouvrir le moniteur série sur Arduino IDE
    • Tester le bouton: Appuyez et relâchez le bouton plusieurs fois.
    • Voir les résultats: Vérifiez la sortie du Moniteur Série.
    • Conseil Pro: Gardez la vitesse en bauds du Moniteur Série définie sur 115200 pour correspondre à votre code.

    Sortie du Moniteur Série

    Newbiely | Arduino IDE 2.3.8
    ──
    File
    Edit
    Sketch
    Tools
    Help
    ESP32C3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
    New Line
    9600 baud
    1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0
    Ln 11, Col 1
    ESP32C3 Dev Module on COM15
    2

    Remarque: 1 représente HIGH (bouton relâché), 0 représente LOW (bouton appuyé).

    Explication du Code Ligne par Ligne

    Le code ESP32 C3 Super Mini ci-dessus contient l'explication ligne par ligne. Veuillez lire les commentaires dans le code!

    Modification du Code ESP32 C3 Super Mini

    Améliorons le code pour détecter les événements de presse et de relâchement au lieu de simplement lire les états.

    Ce que ce code modifié fait:

    • Détecte lorsque le bouton est appuyé (l'état passe de HIGH à LOW)
    • Détecte lorsque le bouton est relâché (l'état passe de LOW à HIGH)
    • Imprime des messages clairs pour chaque événement
    • Suit l'état précédent pour identifier les changements

    Étapes Rapides

    /* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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/esp32-c3/esp32-c3-super-mini-button */ #define BUTTON_PIN 7 // The ESP32 C3 SuperMini pin GPIO7 pin connected to button int prev_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the button pin as an pull-up input (HIGH when the switch is open and LOW when the switch is closed) pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: button_state = digitalRead(BUTTON_PIN); if (prev_state == HIGH && button_state == LOW) Serial.println("The button is pressed"); else if (prev_state == LOW && button_state == HIGH) Serial.println("The button is released"); // save the the last state prev_state = button_state; }
    • Télécharger le code: Compilez et téléchargez sur votre carte ESP32 C3 Super Mini.
    • Ouvrir le Moniteur Série: Affichage de la fenêtre de sortie.
    • Tester: Appuyez et relâchez le bouton.
    • Observer les résultats: Vérifiez le Moniteur Série pour les messages d'événements.

    Sortie du Moniteur Série

    Newbiely | Arduino IDE 2.3.8
    ──
    File
    Edit
    Sketch
    Tools
    Help
    ESP32C3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
    New Line
    9600 baud
    The button is pressed The button is released The button is pressed The button is pressed The button is released The button is pressed The button is released
    Ln 11, Col 1
    ESP32C3 Dev Module on COM15
    2

    ※ Note:

    • Le Moniteur Série peut imprimer plusieurs événements appuyé et relâché même si vous avez fait un seul appui et relâchement. C'est un comportement normal du bouton. Ce comportement s'appelle le "phénomène de chattering". Dans certaines applications, nous avons besoin d'une méthode pour l'éliminer. Vous pouvez en savoir plus dans le didacticiel Antirebond Bouton ESP32 C3 Super Mini.
    • Pour le simplifier pour les débutants, surtout lors de l'utilisation de plusieurs boutons, nous avons créé une bibliothèque, appelée ezButton. Vous pouvez en savoir plus sur la bibliothèque ezButton ici.
    • Lors de l'utilisation du module de bouton, définissez la broche sur pinMode(BUTTON_PIN, INPUT). Le module sort LOW lorsqu'il n'est pas appuyé et HIGH lorsqu'il est appuyé.

    Idées d'Application/Projet

    Voici des façons créatives d'utiliser les boutons avec vos projets ESP32 C3 Super Mini.

    • Contrôler la luminosité ou les couleurs des LED avec des appuis sur le bouton
    • Créer un compteur numérique ou un tableau de bord
    • Construire un système de buzzer de quiz avec plusieurs boutons
    • Concevoir un système de sécurité avec alarmes activées par bouton
    • Faire un contrôleur de lecteur de musique (lecture, pause, saut)
    • Développer un remplacement d'interrupteur d'éclairage domotique

    Section Vidéo

    Regardez la vidéo ci-dessous pour une procédure pas à pas visuelle de ce projet.

    Défiez-vous

    Amenez vos compétences en boutons au niveau suivant avec ces défis.

    • Facile: Ajoutez une LED qui s'allume lorsque le bouton est appuyé
    • Facile: Comptez combien de fois le bouton est appuyé et afficher le compte
    • Moyen: Créez un détecteur d'appui long qui déclenche des actions différentes pour les appuis courts et longs
    • Moyen: Implémentez un antirebond approprié pour éliminer les détections d'appui multiples
    • Avancé: Construisez une serrure à combinaison en utilisant plusieurs boutons avec une séquence de code secret

    Connaissances Supplémentaires

    Comprendre quand utiliser les résistances de tirage ou de tirage est essentiel pour les projets fiables ESP32 C3 Super Mini.

    Quand utiliser les résistances de tirage/tirage:

    • DEVRAIT utiliser: Les capteurs avec deux états (ouvert/fermé) ont besoin de résistances pour créer des signaux clairs HIGH/LOW
      • Exemples: bouton poussoir, commutateur, commutateur de contact magnétique (capteur de porte)
    • NE DEVRAIT PAS utiliser: Les capteurs qui produisent les niveaux de tension (LOW/HIGH) n'ont pas besoin de résistances

    Références du Langage

    Commentaires

    ※ 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 !