Arduino - Interrupteur de fin de course

L'interrupteur de fin de course est utilisé dans de nombreuses applications telles que le contrôle des moteurs, l'automatisation. Dans ce tutoriel, nous apprendrons comment utiliser l'interrupteur de fin de course avec Arduino.

Arduino avec interrupteur de fin de course

Veuillez ne pas confondre avec ce qui suit :

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Limit Switch (KW12-3)
1×Limit Switch (V-156-1C25)
1×Wires
1×(Optional) Heat Shrink Tubing
1×(Optional) Soldering Iron
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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 de l'interrupteur de fin de course

Il est appelé Interrupteur de fin de course parce que sa fonction principale est utilisée pour détecter l'objet en mouvement atteignant une limite.

Brochage

Il existe différents types d'interrupteurs de limite disponibles, mais parmi les plus utilisés figurent le KW12-3 et le V-156-1C25. Ces deux types possèdent 3 broches :

  • Broche C : est la broche commune. Elle est utilisée à la fois en mode normalement ouvert et en mode normalement fermé.
  • Broche NO : est la broche normalement ouverte. Elle est utilisée en mode normalement ouvert.
  • Broche NC : 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

Bien que l'interrupteur de fin de course dispose de 3 broches, une application normale utilise généralement seulement deux broches : la broche C et l'une des deux broches restantes. Par conséquent, il existe quatre manières d'utiliser l'interrupteur de fin de course. Ci-dessous se trouve le tableau de câblage pour l'interrupteur de fin de course et l'état de lecture sur Arduino dans les quatre manières :

C pin NO pin NC pin Arduino Input Pin's State
1 GND Arduino Input Pin (with pull-up) not connected HIGH when untouched, LOW when touched
2 GND not connected Arduino Input Pin (with pull-up) LOW when untouched, HIGH when touched
3 VCC Arduino Input Pin (with pull-down) not connected LOW when untouched, HIGH when touched
4 VCC not connected Arduino Input Pin (with pull-down) HIGH when untouched, LOW when touched

Pour chaque méthode, nous pouvons interchanger la broche GND et la broche d'entrée Arduino. Par conséquent, nous avons 8 façons de connecter un Arduino à un interrupteur de fin de course.

Nous avons seulement besoin de choisir une des quatre méthodes ci-dessus. Le reste du tutoriel utilisera la première méthode.

Diagramme de câblage

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

This image is created using Fritzing. Click to enlarge image

Pour rendre la connexion des câbles stable et solide, nous recommandons d’utiliser un fer à souder pour souder ensemble les fils et la broche de l'interrupteur de fin de course, puis d’utiliser une gaine thermorétractable pour assurer la sécurité.

Code Arduino - Interrupteur de limite

Tout comme un bouton, un interrupteur de fin de course doit également être anti-rebond (voir plus à Pourquoi a-t-on besoin de l'anti-rebond pour le bouton/l'interrupteur de fin de course ?). L'anti-rebond rend le code compliqué. Heureusement, la bibliothèque ezButton prend en charge la fonction d'anti-rebond, La bibliothèque utilise également un registre de pull-up interne. Cela nous facilite la programmation.

※ NOTE THAT:

Il existe deux cas d'utilisation fréquemment utilisés :

  • Le premier : Si l'état de l'interrupteur est TOUCHÉ, faire quelque chose. Si l'état d'entrée est NON TOUCHÉ, faire autre chose en sens inverse.
  • Le deuxième : Si l'état de l'interrupteur passe de NON TOUCHÉ à TOUCHÉ (ou de TOUCHÉ à NON TOUCHÉ), faire quelque chose.
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // create ezButton object that attach to pin 7; 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

  • Faites le câblage comme le montre le schéma de câblage ci-dessus
  • Connectez l'Arduino au PC via un câble USB
  • Ouvrez l'IDE Arduino
  • Installez la bibliothèque ezButton. Voir Comment faire
  • Sélectionnez la bonne carte et le bon port
  • Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur l'Arduino
  • Touchez l'interrupteur de fin de course et relâchez.
  • Consultez le résultat sur le moniteur série.
COM6
Send
The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED -> TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED -> UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!