Raspberry Pi - Interrupteur DIP

Les interrupteurs DIP (Dual In-line Package) sont largement utilisés en électronique pour des tâches de configuration telles que l'établissement d'adresses de périphériques, l'activation de fonctionnalités, et plus encore. Ce tutoriel vise à explorer l'utilisation de l'interrupteur DIP avec le Raspberry Pi. Plus précisément, nous aborderons :

Raspberry Pi avec interrupteur DIP

Préparation du matériel

1×Raspberry Pi 4 Model B
1×DIP Switch
1×Breadboard
1×Jumper Wires
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 du commutateur DIP

Les commutateurs DIP sont principalement utilisés pour configurer des appareils, permettant aux utilisateurs de définir des paramètres tels que les adresses des appareils, les paramètres de communication, les codes de sécurité, les modes de fonctionnement et les préférences système dans divers secteurs et applications.

Un interrupteur DIP se compose de plusieurs petits interrupteurs à glissière regroupés. Chaque interrupteur à glissière est appelé une "position". Les interrupteurs DIP existent en différents types selon le nombre de positions qu'ils ont. Par exemple, il existe des interrupteurs DIP à 2 positions, 4 positions, 5 positions, 6 positions, 8 positions et 10 positions.

Un commutateur DIP peut représenter un nombre configurable. Chaque position sur le commutateur correspond à un bit du nombre. En basculant les positions entre ON et OFF, nous pouvons définir le nombre souhaité.

Brochage

Brochage des interrupteurs DIP
image source: diyables.io

Un commutateur DIP est composé de deux rangées de broches, le nombre de broches dans chaque rangée correspondant au nombre de positions disponibles du commutateur. Par exemple, un commutateur DIP à 4 positions comprend un total de 8 broches, réparties uniformément avec 4 broches de chaque côté. Dans la structure du commutateur DIP, chaque paire de broches opposées représente un interrupteur à glissière. Notamment, il n’est pas nécessaire de différencier les broches des deux côtés car elles peuvent être interchangeables.

Comment ça marche

Dans les commutateurs DIP, lorsqu'un interrupteur est en position ON, cela signifie que l'interrupteur est engagé ou fermé. Cela indique qu'une connexion électrique est établie, permettant au courant de passer à travers l'interrupteur.

Inversement, lorsque l'interrupteur est en position OFF, cela indique que l'interrupteur est désengagé ou ouvert. Dans cet état, la connexion électrique est coupée, et le courant ne peut pas circuler à travers l'interrupteur.

Pour clarifier :

  • Position ON : Indique un circuit fermé, permettant le passage du courant.
  • Position OFF : Indique un circuit ouvert, empêchant le passage du courant.

Lorsque nous connectons un côté de l'interrupteur à la masse (GND) et l'autre à une broche de Raspberry Pi, puis que nous configurons la broche de Raspberry Pi comme une entrée numérique en pull-up, le tableau ci-dessous illustre la relation entre la position de l'interrupteur et les valeurs lues depuis l'Arduino :

DIP switch position Binary representation Circuit state Raspberry Pi pin state
ON 1 CLOSED LOW
OFF 0 OPEN HIGH

Dans les prochaines sections, nous utiliserons un interrupteur DIP à 4 positions comme exemple. Vous pouvez facilement vous adapter aux interrupteurs DIP à 2 positions, 3 positions, 5 positions, 6 positions, 8 positions et 10 positions...

Diagramme de câblage

Schéma de câblage de l'interrupteur DIP 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

Code Raspberry Pi - Interrupteur DIP

Nous allons apprendre à travers deux morceaux de code :

  • Lecture de l'état ON/OFF de chaque position sur l'interrupteur DIP.
  • Encodage des positions en un numéro.

Code Raspberry Pi - Lecture de l'état ON/OFF de l'interrupteur DIP

Étapes rapides

  • Assurez-vous d'avoir installé Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi 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 certaines 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 d'avoir 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
  • Effectuez le câblage selon le schéma de câblage ci-dessus
  • Créez un fichier de script Python dip_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-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()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 dip_switch.py
  • Basculez chaque position du commutateur DIP sur ON une par une.
  • Observez le résultat sur le 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

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

Code Raspberry Pi - Codage des états d'un interrupteur DIP en un nombre

Étapes rapides

  • Créer un fichier de script Python dip_switch_encode.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-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()
  • Enregardez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 dip_switch_encode.py
  • Basculez chaque position du DIP switch sur ON une par une.
  • Consultez le résultat sur le moniteur série, cela ressemble à ce qui suit.
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

Veuillez noter que la valeur dépend des positions de chaque interrupteur. Le tableau ci-dessous montre la correspondance entre la position ON/OFF et la valeur entière pour un commutateur DIP à 4 positions :

Position-1Position-2Position-3Position-4Binary ValueDecimal Value
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

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!