Arduino Nano - Interrupteur de fin de course

Ce tutoriel vous apprend à utiliser l'Arduino Nano avec l'interrupteur de fin de course. En détail, nous allons apprendre :

Arduino Nano avec interrupteur de fin de course

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
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 Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 en raison de sa fonction principale qui est de détecter quand un objet en mouvement atteint une limite.

Brochage de l'interrupteur de fin de course

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

  • C : C'est la broche commune et est utilisée à la fois pour les modes normalement ouvert et normalement fermé
  • NO : C'est la broche normalement ouverte et est utilisée en mode normalement ouvert
  • NC : C'est la broche normalement fermée et 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 limite ait trois broches, généralement seulement deux d'entre elles sont utilisées dans une application normale : la broche C et une des deux autres. Par conséquent, il existe quatre façons possibles de câbler l'interrupteur de limite. Le tableau suivant montre le câblage et l'état de lecture sur Arduino Nano pour les quatre méthodes :

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

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

Nous devons choisir l'une des quatre options. 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 Nano

This image is created using Fritzing. Click to enlarge image

Pour une connexion de câblage sécurisée et fiable, nous vous suggérons d'utiliser un Fer à Souder pour souder ensemble les fils et les broches de l'interrupteur de fin de course. Ensuite, utilisez Gaine Thermorétractable pour plus de sécurité.

Code Arduino Nano - Interrupteur de fin de course

Semblable à un bouton, un interrupteur de fin de course nécessite également un anti-rebond (voir plus dans Pourquoi a-t-on besoin d'un anti-rebond pour le bouton/limite interrupteur?). Cela peut rendre la programmation complexe. Heureusement, la bibliothèque ezButton offre une fonction d'anti-rebond. De plus, elle utilise un registre de tirage interne, ce qui simplifie la programmation du bouton.

※ NOTE THAT:

Deux applications courantes existent avec l'interrupteur de fin de course :

  • La première : Si l'interrupteur est en position TOUCHÉ, effectuer une action. Si l'entrée est NON TOUCHÉE, faire le contraire.
  • La deuxième : Si l'interrupteur passe de NON TOUCHÉ à TOUCHÉ (ou de TOUCHÉ à NON TOUCHÉ), prendre une mesure.
/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-limit-switch */ #include <ezButton.h> ezButton limitSwitch(2); // create ezButton object for pin 2 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

  • Effectuez le câblage comme indiqué dans le schéma de câblage.
  • Connectez l'Arduino Nano à un PC à l'aide d'un câble USB.
  • Ouvrez l'IDE Arduino.
  • Installez la bibliothèque ezButton. Consultez les instructions sur Comment faire.
  • Choisissez la carte et le port appropriés.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'Arduino Nano.
  • Appuyez puis relâchez l'interrupteur de fin de course.
  • 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!