Raspberry Pi - Limietschakelaar

Deze tutorial legt uit hoe u een Raspberry Pi gebruikt met een limietschakelaar. We zullen in detail leren:

Raspberry Pi met Limietschakelaar

Hardware Benodigd

1×Raspberry Pi 5
1×Limietschakelaar (KW12-3)
1×Limietschakelaar (V-156-1C25)
1×Draden
1×(Optioneel) Krimpkous
1×(Optioneel) Soldeerbout
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Limietschakelaar

Deze wordt een limietschakelaar genoemd omdat het hoofddoel is te detecteren wanneer een bewegend object een grens bereikt.

De Pinout van de Limietschakelaar

Er zijn verschillende types limietschakelaars, maar de populairste zijn de KW12-3 en V-156-1C25 modellen, elk met drie pinnen:

  • C: Dit is de common (gemeenschappelijke) pin en wordt gebruikt in zowel de normaal open als normaal gesloten modus
  • NO: Dit is de normaal open pin en wordt gebruikt in de normaal open modus
  • NC: Dit is de normaal gesloten pin en wordt gebruikt in de normaal gesloten modus
Pinout Limietschakelaar
image source: diyables.io

Hoe Het Werkt

Hoewel de limietschakelaar drie pinnen heeft, worden er doorgaans maar twee gebruikt: de C pin en één van de andere twee. Er zijn dus vier mogelijke configuraties. De volgende tabel toont de bedrading van de limietschakelaar en de bijbehorende uitlezingen op de Raspberry Pi voor alle vier de scenario’s:

C pin NO pin NC pin Staat van Raspberry Pi Input Pin
1 GND Raspberry Pi Input Pin (met pull-up) niet verbonden HIGH wanneer niet ingedrukt, LOW wanneer ingedrukt
2 GND niet verbonden Raspberry Pi Input Pin (met pull-up) LOW wanneer niet ingedrukt, HIGH wanneer ingedrukt
3 VCC Raspberry Pi Input Pin (met pull-down) niet verbonden LOW wanneer niet ingedrukt, HIGH wanneer ingedrukt
4 VCC niet verbonden Raspberry Pi Input Pin (met pull-down) HIGH wanneer niet ingedrukt, LOW wanneer ingedrukt

Per methode kunnen we de GND-pin en de Raspberry Pi input pin omwisselen. Dit levert in totaal 8 mogelijkheden om een Raspberry Pi aan te sluiten op een limietschakelaar.

We kiezen voor deze tutorial één van de vier opties, namelijk de eerste methode.

Bedradingsschema

Bedradingsschema Raspberry Pi Limietschakelaar

This image is created using Fritzing. Click to enlarge image

Voor een veilige en betrouwbare verbinding raden wij aan een soldeerbout te gebruiken om de draden en pinnen van de limietschakelaar vast te solderen. Gebruik daarna krimpkous voor extra veiligheid.

Raspberry Pi Code - Limietschakelaar

Net als bij een knop heeft een limietschakelaar ook last van ‘debouncing’ (voor meer informatie, zie Waarom debounce nodig is voor knop/limietschakelaar?).

※ Notiz:

Twee veelvoorkomende toepassingen van de limietschakelaar zijn:

  • Ten eerste: Als de schakelaar IS INGEDRUKT, voer dan een actie uit. Als de schakelaar NIET INGEDRUKT is, voer dan een andere actie uit.
  • Ten tweede: Als de schakelaar verandert van NIET INGEDRUKT naar INGEDRUKT (of omgekeerd), voer dan een actie uit.

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem geïnstalleerd heeft op uw Pi.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw PC.
  • Zorg dat uw Raspberry Pi internettoegang heeft als u bibliotheken moet installeren.
  • Als u voor het eerst een Raspberry Pi gebruikt, zie dan hoe u Raspberry Pi instelt.
  • Verbind uw PC met de Raspberry Pi via SSH met de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Zie hoe u via SSH verbinding maakt met Raspberry Pi.
  • Controleer of u de RPi.GPIO-bibliotheek hebt geïnstalleerd. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python-scriptbestand aan met de naam limit_switch.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/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()
  • Sla het bestand op en start het Python-script door het volgende commando in de terminal uit te voeren:
python3 limit_switch.py
  • Druk de limietschakelaar in en laat hem weer los.
  • Bekijk het resultaat in de 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

Het script draait continue in een oneindige lus totdat u in de terminal Ctrl + C indrukt.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!