Arduino Nano ESP32 - Interrupteur DIP

En électronique, les commutateurs DIP (Dual In-line Package) sont largement utilisés pour des tâches de configuration, telles que les adresses des dispositifs, les paramètres de communication, les codes de sécurité. Ce tutoriel explorera comment utiliser le commutateur DIP avec Arduino Nano ESP32. Plus précisément, nous aborderons :

Arduino Nano ESP32 avec interrupteur DIP

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×DIP Switch
1×Breadboard
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano ESP32
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 des outils essentiels pour configurer des appareils, permettant aux utilisateurs de régler des paramètres tels que l'adresse de l'appareil, les paramètres de communication, les codes de sécurité, les modes opérationnels et les préférences système dans divers secteurs et applications.

Un commutateur DIP est composé de plusieurs petits commutateurs coulissants regroupés ensemble, chaque commutateur étant appelé une « position ». Ces commutateurs sont disponibles en différents types selon le nombre de positions qu'ils offrent. Par exemple, il existe des commutateurs DIP à 2, 4, 5, 6, 8 et 10 positions.

Chaque position sur un interrupteur DIP représente un bit configurable d'un nombre. En basculant ces positions entre ON et OFF, les utilisateurs peuvent définir la valeur numérique qu'ils souhaitent configurer.

Brochage

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

Un commutateur DIP est composé de deux rangées de broches, où le nombre de broches dans chaque rangée correspond au nombre de positions de commutateur disponibles. Par exemple, un commutateur DIP à 4 positions a un total de 8 broches, réparties également avec 4 broches de chaque côté. À l'intérieur du montage du commutateur DIP, chaque paire de broches opposées représente un interrupteur coulissant. Il est important de noter qu'il n'est pas nécessaire de différencier les broches des deux côtés car elles peuvent être utilisées de manière interchangeable.

Comment ça fonctionne

Dans les commutateurs DIP, lorsque un commutateur est en position ON, cela indique que le commutateur est engagé ou fermé. Cela implique qu'une connexion électrique est établie, permettant le passage du courant à travers le commutateur.

Inversement, lorsqu'un interrupteur est en position OFF, cela signifie que l'interrupteur est désengagé ou ouvert. Dans cet état, la connexion électrique est coupée, empêchant le passage du courant à travers l'interrupteur.

Pour clarifier :

  • Position ON : Établit un circuit fermé, permettant au courant de passer.
  • Position OFF : Crée un circuit ouvert, bloquant le flux de courant.

Lorsqu'un côté d'un interrupteur est connecté à la terre (GND) et l'autre côté à une broche Arduino Nano ESP32, et que la broche Arduino Nano ESP32 est configurée comme entrée numérique avec pull-up, le tableau ci-dessous illustre la relation entre la position de l'interrupteur et les valeurs lues depuis l'Arduino Nano ESP32 :

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

Dans les parties suivantes, nous utiliserons par exemple un commutateur DIP à 4 positions. Vous pouvez facilement l'adapter pour des commutateurs 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 Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano ESP32 - Interrupteur DIP

Nous apprendrons à travers deux morceaux de code :

  • Lecture de l'état ON/OFF de la position individuelle sur le commutateur DIP.
  • Codage des positions en un nombre.

Code Arduino Nano ESP32 - Lire l'état ON/OFF du commutateur DIP

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano ESP32 pins connected to the dip switch const int SWITCH_PINS[] = { D4, D5, D6, D7 }; 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

Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :

  • Si vous êtes nouveau avec l'Arduino Nano ESP32, référez-vous au tutoriel sur comment configurer l'environnement pour l'Arduino Nano ESP32 dans l'Arduino IDE.
  • Câblez les composants selon le schéma fourni.
  • Connectez la carte Arduino Nano ESP32 à votre ordinateur via un câble USB.
  • Lancez l'Arduino IDE sur votre ordinateur.
  • Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
  • Faites le câblage comme sur le schéma ci-dessus
  • Connectez l'Arduino Nano ESP32 au PC via un câble USB
  • Ouvrez l'Arduino IDE
  • Sélectionnez la bonne carte et le bon port
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code sur l'Arduino Nano ESP32
  • Basculez chaque position sur le commutateur DIP en ON l'une après l'autre.
  • Observez le résultat 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 Nano ESP32 - Encodage des états d'un interrupteur DIP en un nombre

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano ESP32 pins connected to the dip switch const int SWITCH_PINS[] = { D4, D5, D6, D7 }; 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

Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :

  • Si vous êtes nouveau avec l'Arduino Nano ESP32, consultez le tutoriel sur comment configurer l'environnement pour l'Arduino Nano ESP32 dans l'IDE Arduino.
  • Connectez les composants selon le schéma fourni.
  • Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Nano ESP32 et le port COM correspondant.
  • Téléchargez le code ci-dessus sur Arduino Nano ESP32.
  • Basculez chaque position sur le commutateur DIP en position ON une par une.
  • Consultez le résultat sur le moniteur série, il ressemble à ce qui 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 dépend de la position de chaque commutateur à glissière. Le tableau ci-dessous montre le mappage 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!