Raspberry Pi - DIP Switch

DIP (Dual In-line Package) switches worden veel gebruikt in de elektronica voor configuratietaken zoals het instellen van apparaatadressen, het aan- of uitzetten van functies en meer. In deze tutorial onderzoeken we het gebruik van de DIP switch met de Raspberry Pi. We behandelen specifiek:

Raspberry Pi met DIP Switch

Hardware Benodigd

1×Raspberry Pi 5
1×DIP Schakelaar
1×Breadboard (experimenteerprint)
1×Jumper Kabels
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 DIP Switch

DIP switches worden voornamelijk gebruikt voor het configureren van apparaten, waarmee gebruikers parameters kunnen instellen zoals apparaatadressen, communicatiestandaarden, beveiligingscodes, werkingsmodi en systeemvoorkeuren in verschillende industrieën en toepassingen.

Een DIP switch bestaat uit meerdere kleine schuifschakelaars die samen verpakt zijn. Elke schuifschakelaar wordt een "positie" genoemd. DIP switches zijn verkrijgbaar in verschillende typen, afhankelijk van het aantal posities. Bijvoorbeeld DIP switches met 2, 4, 5, 6, 8 of 10 posities.

Een DIP switch kan een configureerbaar getal representeren. Elke positie op de switch correspondeert met een bit van dat getal. Door de posities tussen AAN (ON) en UIT (OFF) te schakelen, kunt u het gewenste getal instellen.

Pinout

DIP Switch Pinout
image source: diyables.io

Een DIP switch bestaat uit twee rijen pinnen, waarbij het aantal pinnen in elke rij overeenkomt met het aantal posities van de schakelaar. Bijvoorbeeld een 4-positie DIP switch heeft in totaal 8 pinnen, gelijk verdeeld met 4 pinnen aan elke kant. In de opbouw van de DIP switch vertegenwoordigt elk paar pinnen tegenover elkaar een schuifschakelaar. Het is niet nodig om te differentiëren tussen pinnen aan de twee zijden, omdat ze onderling verwisselbaar zijn.

Hoe het werkt

Bij DIP switches betekent een schakelaar in de AAN-positie (ON) dat de schakelaar gesloten is. Dit betekent dat er een elektrische verbinding is gemaakt waardoor stroom kan lopen.

Als een schakelaar in de UIT-positie (OFF) staat, dan is deze open. In deze toestand is de elektrische verbinding verbroken en kan geen stroom door de schakelaar lopen.

Ter verduidelijking:

  • ON-positie: Gesloten circuit, waardoor stroom kan lopen.
  • OFF-positie: Open circuit, waardoor stroom wordt geblokkeerd.

Wanneer we één zijde van de switch verbinden met GND en de andere zijde met een Raspberry Pi pin, en deze Raspberry Pi pin configureren als een pull-up digitale ingang, dan illustreert de volgende tabel de relatie tussen de schakelaarpositie en de waarden gerapporteerd door de Raspberry Pi:

DIP switch positie Binair Circuit status Raspberry Pi pin status
ON 1 GESLOTEN LOW
OFF 0 OPEN HIGH

In de volgende secties gebruiken we een 4-positie DIP switch als voorbeeld. U kunt deze gemakkelijk aanpassen voor 2-, 3-, 5-, 6-, 8- of 10-positie DIP switches...

Bedradingsschema

Raspberry Pi DIP switch Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Raspberry Pi Code – DIP Switch

We leren aan de hand van twee voorbeelden:

  • Het uitlezen van de AAN/UIT-status van elke positie van de DIP switch.
  • Het coderen van de posities naar een getal.

Raspberry Pi code – Uitlezen van de AAN/UIT-status van de DIP switch

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem heeft geïnstalleerd op uw Pi.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u bibliotheken moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, bekijk dan hoe u de Raspberry Pi instelt.
  • Verbind uw pc via SSH met de Raspberry Pi, gebruikmakend van de ingebouwde SSH-client op Linux en macOS, of PuTTY op Windows. Zie hoe u via SSH verbinding maakt met de Raspberry Pi.
  • Zorg dat u de RPi.GPIO bibliotheek geïnstalleerd heeft. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak de bedrading zoals in bovenstaand bedradingsschema.
  • Maak een Python scriptbestand dip_switch.py aan 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-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()
  • Sla het bestand op en voer het script uit met het volgende commando in de terminal:
python3 dip_switch.py
  • Schakel elke positie van de DIP Switch één voor één op AAN (ON).
  • Bekijk het resultaat in de 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

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

Raspberry Pi code – Coderen van de DIP switch status in een getal

Snelle Stappen

  • Maak een Python scriptbestand dip_switch_encode.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-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()
  • Sla het bestand op en voer het script uit met het volgende commando in de terminal:
python3 dip_switch_encode.py
  • Schakel elke positie van de DIP switch één voor één op AAN (ON).
  • Bekijk het resultaat in de Serial Monitor, het ziet er ongeveer zo uit:
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

Let op dat de waarde afhangt van de posities van de schuifschakelaars. De onderstaande tabel toont de mapping tussen de AAN/UIT positie en de gehele waarde voor een 4-positie DIP switch:

Positie-1Positie-2Positie-3Positie-4BinairDecimaal
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

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.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u op weg om sneller vertrouwd te raken met de DIP switch en Raspberry Pi.

※ 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!