Raspberry Pi - DIP Switch

DIP (Dual In-line Package) Schalter finden breite Anwendung in der Elektronik für Konfigurationsaufgaben wie die Festlegung von Geräteadressen, das Umschalten von Features und mehr. Dieses Tutorial zielt darauf ab, die Nutzung des DIP Switch mit Raspberry Pi zu erläutern. Konkret werden wir behandeln:

Raspberry Pi with DIP Switch

Hardware Erforderlich

1×Raspberry Pi 5
1×DIP Schalter
1×Breadboard (Steckplatine)
1×Jumper Wires (Verbindungskabel)
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 DIP Switch

DIP Switches werden hauptsächlich zur Konfiguration von Geräten verwendet und ermöglichen es Benutzern, Parameter wie Geräteadressen, Kommunikationseinstellungen, Sicherheitscodes, Betriebsmodi und Systemeinstellungen in verschiedenen Branchen und Anwendungen festzulegen.

Ein DIP Switch besteht aus mehreren kleinen Schiebeschaltern, die zusammen verpackt sind. Jeder Schiebeschalter wird als "Position" bezeichnet. DIP Switches gibt es in verschiedenen Ausführungen, je nach der Anzahl der Positionen, die sie haben. Zum Beispiel gibt es 2-Position, 4-Position, 5-Position, 6-Position, 8-Position und 10-Position DIP Switches.

Ein DIP Switch kann eine konfigurierbare Zahl darstellen. Jede Position am Switch entspricht einem Bit der Zahl. Durch das Umschalten der Positionen zwischen ON und OFF können wir die gewünschte Zahl einstellen, die wir möchten.

Pinout

DIP Switch Pinout
image source: diyables.io

Ein DIP Switch besteht aus zwei Reihen von Pins, wobei die Anzahl der Pins in jeder Reihe der verfügbaren Switch-Positionen entspricht. Beispielsweise enthält ein 4-Position DIP Switch insgesamt 8 Pins, gleichmäßig aufgeteilt mit 4 Pins auf jeder Seite. In der DIP Switch-Struktur repräsentiert jedes Paar von Pins, die einander gegenüberliegen, einen Schiebeschalter. Bemerkenswert ist, dass es nicht notwendig ist, zwischen den Pins auf den beiden Seiten zu unterscheiden, da sie austauschbar sind.

Wie es funktioniert

Bei DIP Switches bedeutet es, wenn ein Schalter in der ON-Position ist, dass der Schalter eingeschaltet oder geschlossen ist. Dies zeigt an, dass eine elektrische Verbindung hergestellt wird, wodurch der Strom durch den Schalter fließen kann.

Umgekehrt, wenn ein Schalter in der OFF-Position ist, zeigt dies an, dass der Schalter ausgeschaltet oder offen ist. In diesem Zustand ist die elektrische Verbindung unterbrochen und der Strom kann nicht durch den Schalter fließen.

Zur Klarstellung:

  • ON-Position: Zeigt einen geschlossenen Stromkreis an, der Stromfluss ermöglicht.
  • OFF-Position: Zeigt einen offenen Stromkreis an, der Stromfluss verhindert.

Wenn wir eine Seite des Schalters mit GND und die andere mit einem Raspberry Pi Pin verbinden und dann den Raspberry Pi Pin als Pull-up Digital-Eingang konfigurieren, zeigt die folgende Tabelle die Beziehung zwischen der Schalterposition und den vom Arduino gelesenen Werten:

DIP Switch Position Binäre Darstellung Schaltungszustand Raspberry Pi Pin-Zustand
ON 1 GESCHLOSSEN LOW
OFF 0 OFFEN HIGH

In den nächsten Teilen werden wir einen 4-Position DIP Switch als Beispiel verwenden. Sie können dies leicht für 2-Position DIP Switches, 3-Position DIP Switches, 5-Position DIP Switches, 6-Position DIP Switches, 8-Position DIP Switches und 10-Position DIP Switches anpassen...

Schaltplan

Raspberry Pi DIP 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

Raspberry Pi Code - DIP Switch

Wir werden durch zwei Code-Beispiele lernen:

  • Lesen des ON/OFF-Zustands der einzelnen Position am DIP Switch.
  • Kodierung der Positionen in eine Zahl.

Raspberry Pi Code - Lesen des ON/OFF-Zustands des DIP Switch

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.
  • Falls Sie Raspberry Pi zum ersten Mal verwenden, sehen Sie wie Sie den Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi unter Verwendung des eingebauten SSH-Clients auf Linux und macOS oder PuTTY auf Windows. Siehe wie Sie Ihren PC über SSH mit Raspberry Pi verbinden.
  • Stellen Sie sicher, dass Sie die RPi.GPIO-Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Führen Sie die Verkabelung gemäß dem obigen Schaltplan durch
  • Erstellen Sie eine Python-Skriptdatei dip_switch.py und fügen Sie 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-dip-switch import RPi.GPIO as GPIO import time POSITION_NUM = 4 ON = GPIO.LOW OFF = GPIO.HIGH SWITCH_PINS = [23, 18, 15, 14] # Set up GPIO mode GPIO.setmode(GPIO.BCM) # Set the dip switch pins as inputs with pull-up resistors enabled for pin in SWITCH_PINS: GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) try: while True: # Read the state of each switch position for i, pin in enumerate(SWITCH_PINS): print("position {}: {}".format(i + 1, "ON" if GPIO.input(pin) == ON else "OFF")) print() # Add a delay to prevent rapid readings time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 dip_switch.py
  • Schalten Sie jede Position am DIP Switch nacheinander auf ON.
  • Sehen Sie das Ergebnis im Terminal.
PuTTY - Raspberry Pi
position 1: OFF position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: ON position 4: OFF position 1: ON position 2: ON position 3: ON position 4: ON

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

Raspberry Pi Code - Kodierung der DIP Switch-Zustände in eine Zahl

Schnelle Schritte

  • Erstellen Sie eine Python-Skriptdatei dip_switch_encode.py und fügen Sie 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-dip-switch import RPi.GPIO as GPIO import time POSITION_NUM = 4 ON = GPIO.LOW OFF = GPIO.HIGH SWITCH_PINS = [23, 18, 15, 14] # Set up GPIO mode GPIO.setmode(GPIO.BCM) # Set the DIP switch pins as inputs with pull-up resistors enabled for pin in SWITCH_PINS: GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) try: while True: encoded_state = 0 for i, pin in enumerate(SWITCH_PINS): state = GPIO.input(pin) if state == ON: encoded_state |= 1 << (POSITION_NUM - i - 1) print("encoded state: {}".format(encoded_state)) # add a delay to prevent rapid readings time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 dip_switch_encode.py
  • Schalten Sie jede Position am DIP Switch nacheinander auf ON.
  • Sehen Sie das Ergebnis im Serial Monitor, es sieht etwa so aus:
PuTTY - Raspberry Pi
encoded state: 0 encoded state: 1 encoded state: 2 encoded state: 3 encoded state: 4 encoded state: 5 encoded state: 6 encoded state: 7 encoded state: 8 encoded state: 9 encoded state: 10 encoded state: 11 encoded state: 12 encoded state: 13 encoded state: 14 encoded state: 15

Bitte beachten Sie, dass der Wert von den Positionen der einzelnen Schiebeschalter abhängt. Die folgende Tabelle zeigt die Zuordnung zwischen ON/OFF-Position und dem Ganzzahlwert für einen 4-Position DIP Switch:

Position-1Position-2Position-3Position-4BinärwertDezimalwert
OFF OFF OFF OFF 0000 0
OFF OFF OFF ON 0001 1
OFF OFF ON OFF 0010 2
OFF OFF ON ON 0011 3
OFF ON OFF OFF 0100 4
OFF ON OFF ON 0101 5
OFF ON ON OFF 0110 6
OFF ON ON ON 0111 7
ON OFF OFF OFF 1000 8
ON OFF OFF ON 1001 9
ON OFF ON OFF 1010 10
ON OFF ON ON 1011 11
ON ON OFF OFF 1100 12
ON ON OFF ON 1101 13
ON ON ON OFF 1110 14
ON ON ON ON 1111 15

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!