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 :
- Comprendre l'interrupteur DIP et son fonctionnement
- Connecter l'interrupteur DIP au Raspberry Pi
- Programmer le Raspberry Pi pour lire les états ON/OFF de l'interrupteur DIP
- Programmer le Raspberry Pi pour lire les valeurs numériques définies par l'interrupteur DIP
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À 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
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
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 :
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 :
- 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 :
- Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
- Basculez chaque position du commutateur DIP sur ON une par une.
- Observez le résultat sur le terminal.
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 :
- Enregardez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
- 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.
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-1 | Position-2 | Position-3 | Position-4 | Binary Value | Decimal 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 |