Arduino UNO R4 - Interrupteur DIP

Les commutateurs DIP (Dual In-line Package) sont souvent utilisés en électronique pour configurer des dispositifs, par exemple pour configurer des adresses ou activer/désactiver des fonctionnalités. Dans ce guide, nous apprendrons à utiliser un commutateur DIP avec l'Arduino UNO R4. Nous aborderons :

Arduino UNO R4 avec interrupteur DIP

À propos de l'interrupteur DIP

Les interrupteurs DIP sont principalement utilisés pour configurer les appareils, permettant aux utilisateurs de régler des paramètres tels que l'adresse de l'appareil, les options de communication, les codes de sécurité, le mode de fonctionnement et les préférences système pour différentes utilisations et industries.

Un interrupteur DIP se compose de plusieurs petits commutateurs à glissière réunis en une seule unité. Chaque interrupteur à glissière est appelé une « position ». Il existe différents types d'interrupteurs DIP, chacun ayant un nombre spécifique de positions telles que 2, 4, 5, 6, 8 ou 10.

Un commutateur DIP peut être configuré pour représenter différents nombres. Chaque position du commutateur est reliée à un bit du nombre. En basculant ces positions sur ON ou OFF, nous pouvons choisir le nombre dont nous avons besoin.

Schéma de brochage

Schéma des broches de l'interrupteur DIP
image source: diyables.io

Un interrupteur DIP comporte deux rangées de broches. Le nombre de broches dans chaque rangée correspond au nombre de positions de l'interrupteur. Par exemple, dans un interrupteur DIP à 4 positions, il y a au total 8 broches, avec 4 broches de chaque côté. Chaque paire de broches en face l'une de l'autre forme un interrupteur à glissière. Il est important de noter que peu importe de quel côté se trouve une broche, car les broches sont interchangeables.

Comment cela fonctionne

Lorsqu'un interrupteur DIP est en position ON, il est fermé. Cela permet au courant de circuler à travers l'interrupteur.

Lorsque l'interrupteur est en position OFF, il est ouvert. Cela signifie que la connexion électrique est rompue et qu'aucun courant ne peut circuler à travers l'interrupteur.

Pour être clair :

  • Position ON : Le circuit est fermé, le courant peut passer.
  • Position OFF : Le circuit est ouvert, le courant ne peut pas passer.

Lorsque vous connectez l'un des côtés de l'interrupteur à la masse (GND) et l'autre côté à la broche de l'Arduino UNO R4, et que vous configurez la broche de l'Arduino UNO R4 en entrée numérique à pull-up, le tableau ci-dessous montre la relation entre la position de l'interrupteur et les valeurs lues par l'Arduino UNO R4.

DIP switch position Binary representation Circuit state Arduino UNO R4 pin state
ON 1 CLOSED LOW
OFF 0 OPEN HIGH

Dans les sections suivantes, nous prendrons pour exemple un commutateur DIP à 4 positions. Vous pouvez également adapter cela pour des commutateurs DIP à 2, 3, 5, 6, 8 et 10 positions.

Diagramme de câblage

Schéma de câblage de l'interrupteur DIP Arduino UNO R4

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter l'Arduino UNO R4..

Arduino UNO R4 Code - Interrupteur DIP

Nous allons explorer l'utilisation de deux exemples de code :

  • Vérifier si chaque interrupteur est allumé ou éteint.
  • Convertir ces positions d'interrupteur en un nombre.

Code Arduino UNO R4 - Lecture de l'état ON/OFF de l'interrupteur DIP

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 2, 3, 4, 5 }; void setup() { // initialize serial communication Serial.begin(9600); // set the dip switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { // Read the state of each switch position for (int i = 0; i < POSITION_NUM; i++) { Serial.print("position "); Serial.print(i + 1); Serial.print(": "); int state = digitalRead(SWITCH_PINS[i]); if (state == ON) Serial.println("ON "); else Serial.println("OFF "); } Serial.println(); // add a delay to prevent rapid readings delay(500); }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est votre première utilisation de l'Arduino Uno R4 WiFi/Minima, consultez le tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Reliez les composants selon le schéma fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le port COM.
  • Suivez le schéma de câblage fourni.
  • Connectez l'Arduino UNO R4 à votre ordinateur à l'aide d'un câble USB.
  • Lancez le logiciel IDE Arduino sur votre ordinateur.
  • Choisissez la carte et le port corrects.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino UNO R4.
  • Allumez chaque interrupteur du DIP Switch, un par un.
  • Vérifiez les résultats sur le Moniteur Série.
COM6
Send
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
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code Arduino UNO R4 - Encodage des états de l'interrupteur DIP en un nombre

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 2, 3, 4, 5 }; void setup() { // Initialize serial communication Serial.begin(9600); // Set the DIP switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { int encoded_state = 0; for (int i = 0; i < POSITION_NUM; i++) { int state = digitalRead(SWITCH_PINS[i]); if (state == ON) encoded_state |= 1 << (POSITION_NUM - i - 1); } Serial.print("encoded state: "); Serial.println(encoded_state); // add a delay to prevent rapid readings delay(500); }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Connectez les composants selon le schéma fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple Arduino Uno R4 WiFi) et le port COM.
  • Téléversez le code sur l'Arduino UNO R4.
  • Activez chaque interrupteur du DIP switch, un par un.
  • Vérifiez le Moniteur série pour voir les résultats, qui apparaîtront comme suit.
COM6
Send
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
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Veuillez noter que la valeur change en fonction des positions de chaque interrupteur à glissière. Le tableau ci-dessous montre comment les positions MARCHE/ARRÊT correspondent aux valeurs entières pour un interrupteur 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

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !