Raspberry Pi - Limit Switch (Endschalter)

Diese Anleitung zeigt Ihnen, wie Sie den Raspberry Pi mit dem Limit Switch (Endschalter) verwenden. Im Detail lernen wir:

Raspberry Pi with Limit Switch

Erforderliche Hardware

1×Raspberry Pi 5
1×Endschalter (KW12-3)
1×Endschalter (V-153-1C25)
1×Endschalter (V-155-1C25)
1×Endschalter (V-156-1C25)
1×Kabel
1×(Optional) Schrumpfschlauch
1×(Optional) Lötkolben
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den Limit Switch

Er wird Limit Switch (Endschalter) genannt, weil sein Hauptzweck darin besteht, zu erkennen, wenn ein sich bewegendes Objekt eine Grenze erreicht hat.

Das Limit Switch Pinout

Es gibt verschiedene Arten von Limit Switches, wobei die am häufigsten verwendeten die Modelle KW12-3 und V-156-1C25 sind, die jeweils drei Pins haben:

  • C: Dies ist der gemeinsame Pin und wird sowohl im normalerweise offenen als auch im normalerweise geschlossenen Modus verwendet
  • NO: Dies ist der normalerweise offene Pin und wird im normalerweise offenen Modus verwendet
  • NC: Dies ist der normalerweise geschlossene Pin und wird im normalerweise geschlossenen Modus verwendet
Limit Switch pinout
image source: diyables.io

Wie es funktioniert

Obwohl der Limit Switch drei Pins hat, werden normalerweise nur zwei Pins verwendet: der C-Pin und einer der anderen beiden. Daher gibt es vier mögliche Konfigurationen. Die folgende Tabelle zeigt die Verdrahtung des Limit Switch und die entsprechenden Messwerte am Raspberry Pi für alle vier Szenarien:

C Pin NO Pin NC Pin Raspberry Pi Input Pin Zustand
1 GND Raspberry Pi Input Pin (mit Pull-up) nicht verbunden HIGH wenn unberührt, LOW wenn berührt
2 GND nicht verbunden Raspberry Pi Input Pin (mit Pull-up) LOW wenn unberührt, HIGH wenn berührt
3 VCC Raspberry Pi Input Pin (mit Pull-down) nicht verbunden LOW wenn unberührt, HIGH wenn berührt
4 VCC nicht verbunden Raspberry Pi Input Pin (mit Pull-down) HIGH wenn unberührt, LOW wenn berührt

Bei jeder Methode können wir den GND-Pin und den Raspberry Pi Input Pin vertauschen. Dies ergibt insgesamt 8 Möglichkeiten, einen Raspberry Pi an einen Limit Switch anzuschließen.

Wir müssen eine der vier Optionen auswählen. Der Rest der Anleitung verwendet die erste Methode.

Schaltplan

Raspberry Pi Limit Switch wiring diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

Für eine sichere und zuverlässige Kabelverbindung empfehlen wir, einen Lötkolben zu verwenden, um die Kabel und Pins des Limit Switch zusammenzulöten. Verwenden Sie anschließend Schrumpfschlauch für die Sicherheit.

Raspberry Pi Code - Limit Switch

Ähnlich wie eine Taste benötigt auch ein Limit Switch Entprellung (für weitere Informationen siehe Warum benötigt die Taste/der Limit Switch Entprellung?).

※ Notiz:

Zwei beliebte Anwendungen gibt es mit Limit Switch:

  • Die erste: Wenn der Switch BERÜHRT wird, führe eine Aktion aus. Wenn der Switch UNBERÜHRT ist, führe eine andere Aktion als Reaktion aus.
  • Die zweite: Wenn der Switch von UNBERÜHRT zu BERÜHRT wechselt (oder BERÜHRT zu UNBERÜHRT), führe eine Aktion aus.

Schnelle Schritte

  • Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie einige Bibliotheken installieren müssen.
  • Wenn Sie Raspberry Pi zum ersten Mal verwenden, siehe Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. Siehe PC mit Raspberry Pi über SSH verbinden.
  • Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Erstellen Sie eine Python-Skript-Datei limit_switch.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/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()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal ausführen:
python3 limit_switch.py
  • Drücken Sie den Limit Switch und lassen Sie ihn dann los.
  • Betrachten Sie das Ergebnis im 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

Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!