ESP32 S3 - Bouton - Appui long et appui court

Ce tutoriel vous apprend à programmer votre ESP32 S3 pour détecter à la fois les appuis longs et les appuis courts sur un bouton. Vous apprendrez tout, du câblage de base et des techniques d'anti-rebond à la combinaison de plusieurs types d'appui sur un seul bouton pour une gestion des entrées plus avancée.

Ce que vous allez construire :

  1. Un détecteur d'appui court qui mesure une durée d'appui inférieure à un seuil
  2. Un détecteur d'appui long déclenché au relâchement ou pendant l'appui
  3. Un bouton à double mode qui distingue l'appui court et l'appui long sur la même broche
  4. Une version avec anti-rebond utilisant la bibliothèque ezButton pour une fiabilité prête pour la production
ESP32 S3 - Button - Long Press Short Press

À propos du bouton

Un bouton-poussoir est un dispositif d'entrée simple qui ferme un circuit électrique lorsqu'il est pressé. Lorsqu'il est connecté à l'ESP32 S3 avec la résistance de tirage interne (pull-up) activée, la broche lit HIGH à l'état relâché et LOW lorsque le bouton est pressé. Cela permet de détecter précisément et facilement les événements de pression et de relâchement.

Spécifications clés

Les boutons-poussoirs utilisés avec l'ESP32 S3 prennent en charge plusieurs types d'interaction : appui court, appui long et double-clic. Ils fonctionnent directement avec les résistances de tirage internes de l'ESP32 S3, éliminant le besoin de résistances externes. Comme les boutons physiques produisent du bruit mécanique (rebond), un anti-rebond est nécessaire pour une détection fiable dans les projets réels.

Ressources supplémentaires sur les boutons :

Schéma de câblage

Connectez votre bouton à l'ESP32 S3 en câblant une borne à une broche GPIO et l'autre borne à GND. La résistance de tirage interne est activée par logiciel, aucune résistance externe n'est donc nécessaire.

Consignes de sécurité

Vérifiez toujours votre câblage avant d'alimenter la carte. L'utilisation d'une breadboard facilite les modifications sans soudure. Comme ce tutoriel utilise la résistance de tirage interne, l'état du bouton lit HIGH au relâchement et LOW à la pression - gardez cela à l'esprit en lisant le code.

Broche du composant Broche ESP32 S3
Borne 1 du bouton GPIO 9
Borne 2 du bouton GND
ESP32 S3 Button Wiring Diagram

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

Comment détecter un appui court

Détecter un appui court sur l'ESP32 S3 consiste à mesurer la durée entre l'événement de pression du bouton et l'événement de relâchement. Si cette durée est inférieure à un seuil défini, l'appui court est confirmé.

Méthode de détection de l'appui court :

  • Mesurer le temps entre les événements de pression et de relâchement
  • Si la durée est plus courte qu'un temps prédéfini, l'événement d'appui court est détecté
  • Comparer la durée d'appui à votre seuil SHORT_PRESS_TIME

Mise en œuvre étape par étape :

  • Définir la durée maximale d'un appui court
#define SHORT_PRESS_TIME 500 // 500 milliseconds
  • Détecter que le bouton est pressé et enregistrer l'heure de pression
if(prev_state == HIGH && button_state == LOW) pressed_time = millis();
  • Détecter que le bouton est relâché et enregistrer l'heure de relâchement
if(prev_state == LOW && button_state == HIGH) released_time = millis();
  • Calculer la durée d'appui et
long press_duration = released_time - pressed_time;
  • Déterminer l'appui court en comparant la durée d'appui avec le temps d'appui court défini
if( press_duration < SHORT_PRESS_TIME ) Serial.println("A short press is detected");

Code ESP32 S3 pour détecter l'appui court

Le sketch suivant lit l'état du bouton à l'aide de la résistance de tirage interne de l'ESP32 S3, calcule la durée entre la pression et le relâchement, et affiche un message dans le Serial Monitor lorsqu'un appui court est détecté. Le seuil est fixé à 500 ms par défaut, que vous pouvez ajuster selon votre application.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #define BUTTON_PIN 21 // The ESP32 S3 pin GPIO21 pin connected to button #define SHORT_PRESS_TIME 500 // 500 milliseconds int prev_button_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin unsigned long pressed_time = 0; unsigned long released_time = 0; void setup() { Serial.begin(115200); 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) // button is pressed pressed_time = millis(); else if (prev_button_state == LOW && button_state == HIGH) { // button is released released_time = millis(); long press_duration = released_time - pressed_time; if ( press_duration < SHORT_PRESS_TIME ) Serial.println("A short press is detected"); } // save the the last state prev_button_state = button_state; }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléverser le code : copiez le code ci-dessus et téléversez-le sur votre ESP32 S3 via l'Arduino IDE
  3. Câbler le matériel : connectez le bouton à votre ESP32 S3 en suivant le schéma de câblage
  4. Tester le bouton : appuyez brièvement sur le bouton plusieurs fois
  5. Vérifier les résultats : ouvrez le Serial Monitor (115200 bauds) pour voir les résultats de la détection
  6. Astuce : ajustez la valeur SHORT_PRESS_TIME pour rendre la détection de l'appui court plus rapide ou plus lente
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:01:12.345] A short press is detected [00:01:13.891] A short press is detected [00:01:15.204] A short press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Le Serial Monitor peut afficher plusieurs appuis courts pour une seule pression. C'est un comportement normal du bouton. Ce comportement est appelé le « phénomène de rebond ». Nous apprendrons à éliminer ce problème plus loin dans ce tutoriel.

Comment détecter un appui long

Il existe deux méthodes pour détecter les événements d'appui long sur un bouton avec l'ESP32 S3, chacune adaptée à des besoins différents. La première méthode détecte l'appui long après le relâchement du bouton, tandis que la seconde le détecte en temps réel pendant que le bouton est maintenu enfoncé.

Deux cas d'usage pour la détection de l'appui long :

  • L'événement d'appui long est détecté juste après le relâchement du bouton
  • L'événement d'appui long est détecté pendant que le bouton est pressé

Première méthode (détection au relâchement) :

  • Mesurer la durée entre l'événement de pression et l'événement de relâchement
  • Si la durée est plus longue qu'un temps prédéfini, l'événement d'appui long est détecté

Seconde méthode (détection pendant l'appui) :

  • Mesurer en continu le temps de pression tant que le bouton est maintenu
  • Si la durée dépasse le temps prédéfini, détecter immédiatement l'appui long
  • Continuer à vérifier jusqu'à ce que le bouton soit relâché

Code ESP32 S3 pour détecter l'appui long au relâchement

Ce sketch mesure la durée totale de pression depuis le moment où le bouton est pressé jusqu'à ce qu'il soit relâché. Si la durée dépasse LONG_PRESS_TIME (1000 ms), l'événement d'appui long est signalé via le Serial Monitor. Cette méthode est idéale lorsque vous voulez confirmer que l'utilisateur a maintenu le bouton pendant toute la durée avant d'agir.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #define BUTTON_PIN 21 // The ESP32 S3 pin GPIO21 pin connected to button #define LONG_PRESS_TIME 1000 // 1000 milliseconds int prev_button_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin unsigned long pressed_time = 0; unsigned long released_time = 0; void setup() { Serial.begin(115200); 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) // button is pressed pressed_time = millis(); else if(prev_button_state == LOW && button_state == HIGH) { // button is released released_time = millis(); long press_duration = released_time - pressed_time; if( press_duration > LONG_PRESS_TIME ) Serial.println("A long press is detected"); } // save the the last state prev_button_state = button_state; }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléverser le code : copiez et téléversez le code ci-dessus sur l'ESP32 S3 via l'Arduino IDE
  3. Tester l'appui long : maintenez le bouton enfoncé pendant plus d'une seconde, puis relâchez
  4. Vérifier le Serial Monitor : ouvrez le Serial Monitor à 115200 bauds pour voir les résultats
  5. Astuce : cette méthode est idéale lorsque vous avez besoin que l'action se produise après le relâchement du bouton, pas pendant l'appui
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:02:05.112] A long press is detected [00:02:08.774] A long press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Code ESP32 S3 pour détecter l'appui long pendant la pression

Ce sketch vérifie en continu la durée de pression pendant que le bouton est maintenu et déclenche la détection de l'appui long dès que le seuil est dépassé, sans attendre le relâchement du bouton. Ceci est idéal pour les applications nécessitant un retour immédiat, comme le déclenchement d'une réinitialisation d'usine pendant que le bouton est encore maintenu.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #define BUTTON_PIN 21 // The ESP32 S3 pin GPIO21 pin connected to button #define LONG_PRESS_TIME 1000 // 1000 milliseconds int prev_button_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin unsigned long pressed_time = 0; bool is_pressing = false; bool is_long_detected = false; void setup() { Serial.begin(115200); 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) { // button is pressed pressed_time = millis(); is_pressing = true; is_long_detected = false; } else if(prev_button_state == LOW && button_state == HIGH) { // button is released is_pressing = false; } if(is_pressing == true && is_long_detected == false) { long press_duration = millis() - pressed_time; if( press_duration > LONG_PRESS_TIME ) { Serial.println("A long press is detected"); is_long_detected = true; } } // save the the last state prev_button_state = button_state; }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléverser le code : téléversez le code ci-dessus sur votre ESP32 S3 via l'Arduino IDE
  3. Tester pendant la pression : maintenez le bouton enfoncé pendant plusieurs secondes (ne relâchez pas immédiatement)
  4. Observer le timing : remarquez que la détection se produit pendant que vous appuyez encore
  5. Astuce : cette méthode fournit un retour instantané et convient mieux aux applications sensibles au temps comme les fonctions de réinitialisation d'usine
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:03:22.601] A long press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Comment détecter à la fois l'appui long et l'appui court

En combinant les deux vérifications de durée d'appui dans un seul sketch, un seul bouton sur votre ESP32 S3 peut contrôler deux fonctions entièrement indépendantes. Cela réduit le nombre de composants et simplifie votre circuit sans sacrifier la facilité d'utilisation.

Appui court et appui long après relâchement

Ce sketch distingue les événements d'appui court et d'appui long selon la durée pendant laquelle le bouton a été maintenu, en ne faisant la détermination qu'après le relâchement du bouton. Un seul seuil LONG_PRESS_TIME sépare les deux comportements, permettant deux actions différentes à partir d'un seul bouton sans matériel supplémentaire.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #define BUTTON_PIN 21 // The ESP32 S3 pin GPIO21 pin connected to button #define SHORT_PRESS_TIME 1000 // 1000 milliseconds #define LONG_PRESS_TIME 1000 // 1000 milliseconds int prev_button_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin unsigned long pressed_time = 0; unsigned long released_time = 0; void setup() { Serial.begin(115200); 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) // button is pressed pressed_time = millis(); else if (prev_button_state == LOW && button_state == HIGH) { // button is released released_time = millis(); long press_duration = released_time - pressed_time; if ( press_duration < SHORT_PRESS_TIME ) Serial.println("A short press is detected"); if ( press_duration > LONG_PRESS_TIME ) Serial.println("A long press is detected"); } // save the the last state prev_button_state = button_state; }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléverser le code : téléversez le code ci-dessus sur l'ESP32 S3 via l'Arduino IDE
  3. Tester les deux types : essayez à la fois l'appui long (maintenir >1 seconde) et l'appui court (pression rapide)
  4. Vérifier le Serial Monitor : ouvrez le Serial Monitor pour voir quel type d'appui est détecté
  5. Astuce : réglez LONG_PRESS_TIME selon le comportement attendu de vos utilisateurs (généralement 500-1500 ms fonctionne bien)
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:04:10.330] A short press is detected [00:04:13.890] A long press is detected [00:04:15.210] A short press is detected [00:04:16.540] A short press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Le Serial Monitor peut afficher plusieurs détections d'appui court lors d'un appui long. C'est un comportement normal du bouton. Ce comportement est appelé le « phénomène de rebond ». Le problème sera résolu dans la dernière partie de ce tutoriel.

Appui court et appui long pendant la pression

Ce sketch détecte l'appui long immédiatement lorsque le seuil est atteint, tout en permettant toujours la détection de l'appui court au relâchement si le seuil n'a jamais été atteint. Cela offre la réponse la plus rapide possible aux actions d'appui long tout en gardant la détection de l'appui court pleinement fonctionnelle.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #define BUTTON_PIN 21 // The ESP32 S3 pin GPIO21 pin connected to button #define SHORT_PRESS_TIME 1000 // 1000 milliseconds #define LONG_PRESS_TIME 1000 // 1000 milliseconds int prev_button_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin unsigned long pressed_time = 0; unsigned long released_time = 0; bool is_pressing = false; bool is_long_detected = false; void setup() { Serial.begin(115200); 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) { // button is pressed pressed_time = millis(); is_pressing = true; is_long_detected = false; } else if (prev_button_state == LOW && button_state == HIGH) { // button is released is_pressing = false; released_time = millis(); long press_duration = released_time - pressed_time; if ( press_duration < SHORT_PRESS_TIME ) Serial.println("A short press is detected"); } if (is_pressing == true && is_long_detected == false) { long press_duration = millis() - pressed_time; if ( press_duration > LONG_PRESS_TIME ) { Serial.println("A long press is detected"); is_long_detected = true; } } // save the the last state prev_button_state = button_state; }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléverser le code : téléversez le code sur votre ESP32 S3 via l'Arduino IDE
  3. Tester le timing : essayez des pressions rapides et des maintiens longs pour voir les différents comportements
  4. Observer la réponse : remarquez que l'appui long se déclenche immédiatement, pas au relâchement
  5. Astuce : cette méthode évite les déclenchements accidentels d'appui long puisque les utilisateurs obtiennent un retour instantané
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:05:02.145] A short press is detected [00:05:05.768] A long press is detected [00:05:07.093] A short press is detected [00:05:10.412] A long press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Appui long et appui court avec anti-rebond

Les boutons mécaniques génèrent du bruit électrique lorsque leurs contacts s'ouvrent et se ferment, ce qui fait que le microcontrôleur lit plusieurs transitions pour une seule pression physique. L'anti-rebond filtre ce bruit et est essentiel pour une détection fiable de l'appui long et de l'appui court sur l'ESP32 S3.

La bibliothèque ezButton gère automatiquement toute la logique d'anti-rebond, ce qui en fait l'approche recommandée aussi bien pour les débutants que pour les projets en production. Elle fonctionne de manière fiable avec plusieurs boutons et s'intègre proprement avec la logique de mesure de durée d'appui utilisée dans les sections précédentes.

Appui court et appui long avec anti-rebond après relâchement

Ce sketch combine l'anti-rebond de la bibliothèque ezButton avec la détection du type d'appui après relâchement. Il élimine les fausses détections dues au rebond du bouton tout en distinguant précisément les appuis courts et longs, vous offrant un gestionnaire d'entrée prêt pour la production pour votre projet ESP32 S3.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #include <ezButton.h> #define SHORT_PRESS_TIME 1000 // 1000 milliseconds #define LONG_PRESS_TIME 1000 // 1000 milliseconds ezButton button(21); // create ezButton object for pin Arduino Nano ESP32 pin GPIO21 unsigned long pressed_time = 0; unsigned long released_time = 0; void setup() { Serial.begin(115200); button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) pressed_time = millis(); if (button.isReleased()) { released_time = millis(); long press_duration = released_time - pressed_time; if ( press_duration < SHORT_PRESS_TIME ) Serial.println("A short press is detected"); if ( press_duration > LONG_PRESS_TIME ) Serial.println("A long press is detected"); } }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Installer la bibliothèque : installez la bibliothèque ezButton - voir How To
  3. Téléverser le code : téléversez le code ci-dessus sur l'ESP32 S3 via l'Arduino IDE
  4. Tester une détection propre : essayez à la fois les appuis longs et courts - plus de détections en double
  5. Vérifier les résultats : ouvrez le Serial Monitor pour voir une détection de pression de bouton propre et précise
  6. Astuce : la bibliothèque ezButton élimine automatiquement tous les problèmes de rebond - utilisez-la pour tous les projets en production
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:06:14.221] A short press is detected [00:06:17.885] A long press is detected [00:06:19.103] A short press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Appui court et appui long avec anti-rebond pendant la pression

Ce sketch ajoute l'anti-rebond ezButton à l'approche de détection de l'appui long en temps réel, combinant une réponse instantanée à l'appui long avec un filtrage propre du bruit. C'est la méthode la plus fiable pour les projets ESP32 S3 où la précision et la réactivité sont toutes deux nécessaires.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-long-press-short-press */ #include <ezButton.h> #define SHORT_PRESS_TIME 1000 // 1000 milliseconds #define LONG_PRESS_TIME 1000 // 1000 milliseconds ezButton button(21); // create ezButton object for pin Arduino Nano ESP32 pin GPIO21 unsigned long pressed_time = 0; unsigned long released_time = 0; bool is_pressing = false; bool is_long_detected = false; void setup() { Serial.begin(115200); button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { pressed_time = millis(); is_pressing = true; is_long_detected = false; } if (button.isReleased()) { is_pressing = false; released_time = millis(); long press_duration = released_time - pressed_time; if ( press_duration < SHORT_PRESS_TIME ) Serial.println("A short press is detected"); } if (is_pressing == true && is_long_detected == false) { long press_duration = millis() - pressed_time; if ( press_duration > LONG_PRESS_TIME ) { Serial.println("A long press is detected"); is_long_detected = true; } } }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Installer la bibliothèque : installez la bibliothèque ezButton - voir How To
  3. Téléverser le code : téléversez le code sur votre ESP32 S3 via l'Arduino IDE
  4. Tester la fiabilité : appuyez sur le bouton plusieurs fois - remarquez qu'il n'y a plus de lectures en double
  5. Comparer les méthodes : c'est la méthode la plus fiable pour les projets ESP32 S3 en production
  6. Astuce : utilisez cette méthode pour les applications critiques comme les réinitialisations d'appareil ou les contrôles importants où la précision est essentielle
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[00:07:31.447] A short press is detected [00:07:34.922] A long press is detected [00:07:36.250] A short press is detected [00:07:39.788] A long press is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Pourquoi avoir besoin de l'appui long et de l'appui court

Ajouter la détection multi-appui à vos projets ESP32 S3 débloque davantage de fonctionnalités à partir d'un seul bouton sans augmenter la complexité matérielle.

  1. Économiser des broches : un seul bouton peut contrôler deux fonctions ou plus (appui court pour la lumière, appui long pour le ventilateur)
  2. Prévenir les accidents : utilisez l'appui long pour les fonctions critiques comme la réinitialisation d'usine afin d'éviter une activation accidentelle
  3. Meilleure expérience utilisateur : les utilisateurs peuvent effectuer plusieurs actions sans matériel supplémentaire
  4. Économies de coûts : moins de boutons signifie des circuits plus simples et des coûts de composants réduits
  5. Efficacité d'espace : idéal pour les projets ESP32 S3 compacts avec un espace limité
  6. Conception professionnelle : les boutons multifonctions sont la norme dans l'électronique grand public

Idées d'applications

La détection de l'appui long et de l'appui court ouvre un large éventail de cas d'usage pratiques pour vos projets ESP32 S3.

  1. Contrôleur d'éclairage domotique : appui court pour allumer/éteindre, appui long pour le mode de gradation
  2. Système d'alarme : appui court pour armer/désarmer, appui long pour le mode panique
  3. Minuterie : appui court pour démarrer/arrêter, appui long pour réinitialiser
  4. Thermostat multifonction : l'appui court ajuste la température, l'appui long change le mode chauffage/climatisation
  5. Serrure de porte IoT : appui court pour déverrouiller temporairement, appui long pour un déverrouillage permanent
  6. Capteur alimenté par batterie : appui court pour vérifier l'état, appui long pour entrer en mode veille profonde

Section vidéo

Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

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 !