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.

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 :
- Connecter un interrupteur de fin de course à l'ESP32 S3 à l'aide d'une breadboard
- Lire l'état de l'interrupteur (TOUCHED / UNTOUCHED) en temps réel
- Détecter les transitions d'état (UNTOUCHED → TOUCHED et TOUCHED → UNTOUCHED)
- Afficher les lectures en direct dans le moniteur série de l'Arduino IDE
Matériel requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À 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é.

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.

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.
Étapes rapides
- Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Suivez le schéma de câblage fourni ci-dessus pour connecter votre interrupteur de fin de course à l'ESP32 S3.
- Connectez votre ESP32 S3 à votre PC à l'aide d'un câble USB.
- Ouvrez le logiciel Arduino IDE.
- Installez la bibliothèque ezButton. Consultez les instructions
- Sélectionnez la bonne carte et le bon port dans l'Arduino IDE.
- Compilez et téléversez le code vers la carte ESP32 S3 en cliquant sur le bouton Upload dans l'Arduino IDE.
- Testez l'interrupteur de fin de course en le touchant puis en le relâchant.
- Observez la sortie sur le moniteur série de l'Arduino IDE.
- 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
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 :
- 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.
- 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.
- Contrôle de tapis roulant : Arrêtez un tapis roulant lorsqu'un produit atteint une position spécifique sur la ligne.
- 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.
- Détection d'étage d'ascenseur : Signalez au contrôleur lorsqu'une cabine d'ascenseur arrive à un niveau d'étage désigné.
- 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 :
- 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.
- 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.
- 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.