ESP32 S3 - Interrupteur de fin de course

Ce tutoriel vous explique comment utiliser l'interrupteur de fin de course avec l'ESP32 S3. L'ESP32 S3 lit l'état de l'interrupteur de fin de course et indique s'il est touché ou non via le moniteur série.

ESP32 S3 avec interrupteur de fin de course

Il est important de noter que ce tutoriel porte spécifiquement sur l'utilisation d'un interrupteur de fin de course, veuillez ne pas le confondre avec les éléments suivants :

Ce que vous allez construire :

  1. Connecter un interrupteur de fin de course à l'ESP32 S3 à l'aide d'une breadboard
  2. Lire l'état de l'interrupteur (TOUCHED / UNTOUCHED) en temps réel
  3. Détecter les transitions d'état (UNTOUCHED → TOUCHED et TOUCHED → UNTOUCHED)
  4. Afficher les lectures en direct dans le moniteur série de l'Arduino IDE

À propos de l'interrupteur de fin de course

Un interrupteur de fin de course tire son nom de son objectif principal : détecter quand un objet en mouvement a atteint une limite définie. À la différence d'un bouton poussoir standard, un interrupteur de fin de course est généralement conçu pour une activation mécanique répétée et est souvent utilisé dans des contextes industriels et d'automatisation où une détection précise de position est requise.

Spécifications clés

Il existe différents types d'interrupteurs de fin de course, mais parmi les plus couramment utilisés figurent le KW12-3 et le V-156-1C25. Chacun de ces types comporte trois broches :

  • Broche C : C'est la broche commune, elle est utilisée à la fois en mode normalement ouvert et normalement fermé.
  • Broche NO : C'est la broche normalement ouverte, elle est utilisée en mode normalement ouvert.
  • Broche NC : C'est la broche normalement fermée, elle est utilisée en mode normalement fermé.
Brochage de l'interrupteur de fin de course
image source: diyables.io

Comment ça fonctionne

Une application typique d'interrupteur de fin de course n'utilise que deux broches — la broche C et l'une des deux broches restantes. Cela donne quatre façons différentes de connecter un interrupteur de fin de course. Le tableau ci-dessous illustre le câblage et l'état d'entrée résultant sur l'ESP32 S3 pour chacune des quatre méthodes.

Broche C Broche NO Broche NC État de la broche d'entrée ESP32 S3
1 GND Broche d'entrée ESP32 S3 (avec pull-up) non connectée HIGH quand non touché, LOW quand touché
2 GND non connectée Broche d'entrée ESP32 S3 (avec pull-up) LOW quand non touché, HIGH quand touché
3 VCC Broche d'entrée ESP32 S3 (avec pull-down) non connectée LOW quand non touché, HIGH quand touché
4 VCC non connectée Broche d'entrée ESP32 S3 (avec pull-down) HIGH quand non touché, LOW quand touché

En échangeant la broche GND et la broche d'entrée ESP32 S3 pour chacune des quatre méthodes, il existe un total de huit façons différentes de connecter un ESP32 S3 à un interrupteur de fin de course. Parmi ces huit méthodes, ce tutoriel se concentre sur la première comme exemple de travail.

Schéma de câblage

Connectez l'interrupteur de fin de course à l'ESP32 S3 en utilisant soit une breadboard, soit une carte d'extension à bornier à vis, en suivant les schémas ci-dessous. Pour une connexion stable et sécurisée, il est recommandé d'utiliser un fer à souder pour souder les fils et les broches de l'interrupteur de fin de course ensemble, puis d'utiliser des gaines thermorétractables pour une sécurité supplémentaire.

Notes de sécurité

Assurez-vous toujours que le câblage de l'interrupteur de fin de course correspond à la configuration pull-up ou pull-down prévue avant de mettre la carte sous tension pour éviter des lectures non désirées.

Schéma de câblage de l'interrupteur de fin de course ESP32 S3

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

Code ESP32 S3 - Interrupteur de fin de course

Comme pour un bouton, un interrupteur de fin de course nécessite également un anti-rebond (plus d'informations sur Pourquoi l'anti-rebond est nécessaire pour le bouton/l'interrupteur de fin de course ?). La bibliothèque ezButton offre une fonctionnalité d'anti-rebond intégrée et utilise des registres pull-up internes, ce qui simplifie considérablement le code. Le code suivant lit l'état de l'interrupteur de fin de course à chaque itération de la boucle et affiche tout changement d'état sur le moniteur série.

※ Note:

Deux cas d'usage courants pour un interrupteur de fin de course sont :

  • Le premier cas d'usage : Si l'interrupteur est TOUCHED, effectuez une certaine action. Si l'état d'entrée est UNTOUCHED, effectuez l'action opposée.
  • Le second cas d'usage : Si l'état de l'interrupteur passe de UNTOUCHED à TOUCHED (ou de TOUCHED à UNTOUCHED), effectuez une action spécifique.
/* * 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-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // create ezButton object that attach to ESP32 S3 pin GPIO7 void setup() { Serial.begin(9600); limitSwitch.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { limitSwitch.loop(); // MUST call the loop() function first if(limitSwitch.isPressed()) Serial.println("The limit switch: UNTOUCHED -> TOUCHED"); if(limitSwitch.isReleased()) Serial.println("The limit switch: TOUCHED -> UNTOUCHED"); int state = limitSwitch.getState(); if(state == HIGH) Serial.println("The limit switch: UNTOUCHED"); else Serial.println("The limit switch: TOUCHED"); }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Suivez le schéma de câblage fourni ci-dessus pour connecter votre interrupteur de fin de course à l'ESP32 S3.
  3. Connectez votre ESP32 S3 à votre PC à l'aide d'un câble USB.
  4. Ouvrez le logiciel Arduino IDE.
  5. Installez la bibliothèque ezButton. Consultez les instructions
  6. Sélectionnez la bonne carte et le bon port dans l'Arduino IDE.
  7. Compilez et téléversez le code vers la carte ESP32 S3 en cliquant sur le bouton Upload dans l'Arduino IDE.
  8. Testez l'interrupteur de fin de course en le touchant puis en le relâchant.
  9. Observez la sortie sur le moniteur série de l'Arduino IDE.
  10. Astuce pro : Essayez de basculer entre les broches NO et NC pour observer comment l'état par défaut (TOUCHED vs UNTOUCHED) s'inverse sans changer une seule ligne de code.

Moniteur série

∞
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
[2026-01-15 09:23:11] The limit switch: UNTOUCHED [2026-01-15 09:23:11] The limit switch: UNTOUCHED [2026-01-15 09:23:12] The limit switch: UNTOUCHED [2026-01-15 09:23:12] The limit switch: UNTOUCHED -> TOUCHED [2026-01-15 09:23:13] The limit switch: TOUCHED [2026-01-15 09:23:13] The limit switch: TOUCHED [2026-01-15 09:23:13] The limit switch: TOUCHED [2026-01-15 09:23:14] The limit switch: TOUCHED [2026-01-15 09:23:14] The limit switch: TOUCHED [2026-01-15 09:23:15] The limit switch: TOUCHED [2026-01-15 09:23:15] The limit switch: TOUCHED [2026-01-15 09:23:16] The limit switch: TOUCHED -> UNTOUCHED [2026-01-15 09:23:16] The limit switch: UNTOUCHED [2026-01-15 09:23:17] The limit switch: UNTOUCHED [2026-01-15 09:23:17] The limit switch: UNTOUCHED
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications

Les interrupteurs de fin de course sont utilisés dans un large éventail de scénarios réels d'automatisation et de sécurité où une détection précise de position ou de fin de course est nécessaire. Voici quelques applications courantes :

  1. Butée de fin de course de machine CNC : Détectez quand un chariot d'outil atteint la fin de sa plage de déplacement et arrêtez le mouvement pour éviter les dommages.
  2. Retour à l'origine d'imprimante 3D : Ramenez automatiquement chaque axe à l'origine en déclenchant lorsque la tête d'impression atteint sa position minimale.
  3. Contrôle de tapis roulant : Arrêtez un tapis roulant lorsqu'un produit atteint une position spécifique sur la ligne.
  4. Détection de position de porte ou de portail : Détectez si une porte ou un portail est complètement ouvert ou complètement fermé pour les systèmes de contrôle d'accès.
  5. Détection d'étage d'ascenseur : Signalez au contrôleur lorsqu'une cabine d'ascenseur arrive à un niveau d'étage désigné.
  6. Sécurité de bras robotique : Empêchez une articulation de bras robotique de dépasser sa plage de mouvement sûre en déclenchant un arrêt d'urgence.

Vidéo

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

Défis

Les interrupteurs de fin de course sont des composants simples mais puissants — pousser leur utilisation au-delà de la simple détection d'état ouvre de nombreux projets intéressants. Voici quelques défis pour approfondir votre compréhension :

  1. Débutant : Modifiez le code pour allumer la LED intégrée de l'ESP32 S3 chaque fois que l'interrupteur de fin de course est à l'état TOUCHED.
  2. Intermédiaire : Utilisez deux interrupteurs de fin de course pour représenter les positions "home" et "end" d'un tapis roulant simulé, et affichez un message chaque fois que l'objet virtuel se déplace entre eux.
  3. Avancé : Implémentez un compteur d'anti-rebond qui suit le nombre total de fois où l'interrupteur de fin de course a été déclenché et affiche un total en continu sur le moniteur série, revenant à zéro après 100 pressions.

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 !