Raspberry Pi - Interrupteur de fin de course

Ce tutoriel vous explique comment utiliser Raspberry Pi avec l'interrupteur de fin de course. En détail, nous allons apprendre :

Raspberry Pi avec interrupteur de fin de course

Préparation du matériel

1×Raspberry Pi 4 Model 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) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

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 car sa fonction principale est de détecter lorsqu'un objet en mouvement a atteint une limite.

Le brochage de l'interrupteur de fin de course

Il existe différents types d'interrupteurs de fin de course, mais parmi les plus largement privilégiés se trouvent les modèles KW12-3 et V-156-1C25, chacun doté de trois broches :

  • C : Il s'agit de la broche commune utilisée dans les modes normalement ouvert et normalement fermé.
  • NO : Il s'agit de la broche normalement ouverte utilisée en mode normalement ouvert.
  • NC : Il s'agit de la broche normalement fermée utilisée en mode normalement fermé.
Borniers de connexion du fin de course
image source: diyables.io

Comment ça marche

Bien que le contacteur de fin de course ait trois broches, généralement seules deux broches sont utilisées : la broche C et l'une des deux autres. Par conséquent, il existe quatre configurations possibles. Le tableau suivant montre le câblage du contacteur de fin de course et les lectures correspondantes sur Raspberry Pi pour les quatre scénarios :

C pin NO pin NC pin Raspberry Pi Input Pin's State
1 GND Raspberry Pi Input Pin (with pull-up) not connected HIGH when untouched, LOW when touched
2 GND not connected Raspberry Pi Input Pin (with pull-up) LOW when untouched, HIGH when touched
3 VCC Raspberry Pi Input Pin (with pull-down) not connected LOW when untouched, HIGH when touched
4 VCC not connected Raspberry Pi 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 du Raspberry Pi. Cela nous donne un total de 8 possibilités pour connecter un Raspberry Pi à 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 du commutateur de fin de course Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

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 un Tube Thermorétractable pour plus de sécurité.

Code Raspberry Pi - Interrupteur de fin de course

Similaire à un bouton, un interrupteur de fin de course nécessite également un anti-rebond (pour plus d'informations, voir Pourquoi a-t-on besoin d'un anti-rebond pour le bouton/interrupteur de fin de course ?).

※ Note:

Deux applications populaires existent avec le limiteur :

  • La première : Si l'interrupteur est TOUCHÉ, exécutez une action. Si l'interrupteur est NON TOUCHÉ, effectuez une action différente en réponse.
  • La deuxième : Si l'interrupteur passe de NON TOUCHÉ à TOUCHÉ (ou de TOUCHÉ à NON TOUCHÉ), exécutez une action.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous devez installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous que vous avez la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier de script Python limit_switch.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-limit-switch import RPi.GPIO as GPIO # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin for your button SWITCH_PIN = 16 # Define debounce time in milliseconds DEBOUNCE_TIME_MS = 200 # 200 milliseconds # Set the initial state and pull-up resistor for the button GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the button state and previous state switch_state = GPIO.input(SWITCH_PIN) prev_switch_state = switch_state # Define a function to handle button presses def button_callback(channel): global switch_state switch_state = GPIO.input(SWITCH_PIN) # Add an event listener for the button press GPIO.add_event_detect(SWITCH_PIN, GPIO.BOTH, callback=button_callback, bouncetime=DEBOUNCE_TIME_MS) try: # Main loop while True: # Check if the button state has changed if switch_state != prev_switch_state: if switch_state == GPIO.HIGH: print("The limit switch: TOUCHED -> UNTOUCHED") else: print("The limit switch: UNTOUCHED -> TOUCHED") prev_switch_state = switch_state if switch_state == GPIO.HIGH: print("The limit switch: UNTOUCHED") else: print("The limit switch: TOUCHED") except KeyboardInterrupt: # Clean up GPIO on exit GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 limit_switch.py
  • Appuyez puis relâchez le bouton de fin de course.
  • Visualisez le résultat dans le terminal.
PuTTY - Raspberry Pi
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 -> UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED

Le script s'exécute dans une boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

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!