ESP32 S3 - Commutateur DIP

Les commutateurs DIP (Dual In-line Package) sont largement utilisés en électronique à des fins de configuration, comme la définition d'adresses d'appareils, l'activation ou la désactivation de fonctionnalités, et la définition de modes de fonctionnement. Dans ce tutoriel, vous apprendrez à connecter et à utiliser un commutateur DIP avec la carte ESP32 S3.

ESP32 S3 - DIP Switch

Ce que vous allez construire :

  1. Lire l'état ON/OFF de chaque position individuelle du commutateur DIP
  2. Encoder toutes les positions du commutateur DIP en une seule valeur entière
  3. Afficher les résultats en temps réel via le moniteur série Arduino
  4. Appliquer la technique à tout commutateur DIP de 2 à 10 positions

Matériel nécessaire

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×DIP Interrupteur
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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 composants fondamentaux pour la configuration d'appareils, permettant aux utilisateurs d'ajuster des paramètres tels que les adresses d'appareils, les réglages de communication, les codes de sécurité, les modes de fonctionnement et les préférences système dans de nombreux secteurs et applications. Chaque position d'un commutateur DIP correspond à un seul bit d'un nombre binaire configurable, ce qui en fait un moyen compact et fiable de définir des options matérielles sans logiciel. En basculant les positions entre ON et OFF, vous pouvez définir précisément des valeurs numériques et des indicateurs de fonctionnalités que l'ESP32 S3 lit au démarrage ou pendant le fonctionnement.

Spécifications clés

Un commutateur DIP est composé de plusieurs petits interrupteurs à glissière regroupés, chaque interrupteur individuel étant appelé une "position". Les commutateurs DIP sont disponibles en variantes de 2, 4, 5, 6, 8 et 10 positions. Chaque position d'un commutateur DIP correspond à un bit d'un nombre configurable, et basculer les positions entre ON et OFF vous permet de définir une valeur numérique souhaitée avec une grande précision.

Brochage

Un commutateur DIP est composé de deux rangées de broches, le nombre de broches de chaque rangée correspondant au nombre de positions du commutateur.

  1. Deux rangées de broches — une rangée par côté du corps du commutateur
  2. Un commutateur DIP à 4 positions comporte 8 broches au total (4 par côté)
  3. Chaque paire de broches opposées forme un interrupteur à glissière
  4. Les broches des deux côtés sont interchangeables — la polarité n'a pas d'importance
DIP Switch Pinout
image source: diyables.io

Comment ça marche

Quand une position du commutateur est sur ON, le circuit entre les deux broches correspondantes est fermé, ce qui permet au courant de circuler. Quand une position est sur OFF, le circuit est ouvert et le courant ne peut pas circuler.

Notes de sécurité

Connectez un côté de chaque position du commutateur à GND et l'autre côté à une broche GPIO de l'ESP32 S3 configurée en entrée numérique avec résistance de tirage (pull-up). Cela maintient la broche à un état HIGH connu quand le commutateur est ouvert, et la fait passer à LOW quand le commutateur est fermé.

Position du commutateur DIP Représentation binaire État du circuit État de la broche ESP32 S3
ON 1 CLOSED LOW
OFF 0 OPEN HIGH

Dans les sections ci-dessous, un commutateur DIP à 4 positions est utilisé comme exemple. Vous pouvez facilement adapter le code et le câblage pour des commutateurs DIP à 2, 3, 5, 6, 8, et 10 positions.

Schéma de câblage

ESP32 S3 DIP switch Wiring Diagram

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

Code ESP32 S3 - Commutateur DIP

Les sections suivantes parcourent deux croquis complémentaires qui montrent les deux façons d'utiliser un commutateur DIP avec l'ESP32 S3. Le premier croquis lit chaque position individuellement, tandis que le second encode toutes les positions en une seule valeur entière. Les deux croquis utilisent des résistances de tirage (pull-up) internes, donc aucune résistance externe n'est nécessaire.

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

Le code suivant lit chaque position du commutateur DIP indépendamment et affiche son état ON ou OFF dans le moniteur série. Cette approche est utile quand chaque position contrôle une fonctionnalité ou un réglage distinct dans votre projet ESP32 S3.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-dip-switch */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 13, 12, 11, 10 }; 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

  • Nouveau sur l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  • Effectuez le câblage comme indiqué sur le schéma ci-dessus.
  • Connectez la carte ESP32 S3 à votre PC via un câble USB Type-C.
  • Ouvrez l'Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 S3 et le bon port COM.
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code vers l'ESP32 S3.
  • Basculez chaque position du commutateur DIP sur ON une par une.
  • Voyez le résultat dans le moniteur série.
  • Astuce : Si vous adaptez ceci pour davantage de positions, ajoutez simplement plus de définitions de broches et d'itérations de boucle pour correspondre au nombre de positions de votre commutateur DIP.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-01-15 10:23:01] position 1: OFF [2026-01-15 10:23:01] position 2: OFF [2026-01-15 10:23:01] position 3: OFF [2026-01-15 10:23:01] position 4: OFF [2026-01-15 10:23:04] position 1: ON [2026-01-15 10:23:04] position 2: OFF [2026-01-15 10:23:04] position 3: OFF [2026-01-15 10:23:04] position 4: OFF [2026-01-15 10:23:07] position 1: ON [2026-01-15 10:23:07] position 2: ON [2026-01-15 10:23:07] position 3: OFF [2026-01-15 10:23:07] position 4: OFF [2026-01-15 10:23:10] position 1: ON [2026-01-15 10:23:10] position 2: ON [2026-01-15 10:23:10] position 3: ON [2026-01-15 10:23:10] position 4: OFF [2026-01-15 10:23:13] position 1: ON [2026-01-15 10:23:13] position 2: ON [2026-01-15 10:23:13] position 3: ON [2026-01-15 10:23:13] position 4: ON
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Code ESP32 S3 - Encoder les états du commutateur DIP en un nombre

Le code suivant traite chaque position du commutateur DIP comme un seul bit et combine toutes les positions en une seule valeur entière. C'est idéal pour lire des codes de configuration, des adresses d'appareils, ou des réglages multi-bits en une seule opération sur votre ESP32 S3.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-dip-switch */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 13, 12, 11, 10 }; 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

  • Nouveau sur l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  • Effectuez le câblage comme indiqué sur le schéma ci-dessus.
  • Connectez la carte ESP32 S3 à votre PC via un câble USB Type-C.
  • Ouvrez l'Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 S3 et le bon port COM.
  • Téléversez le code ci-dessus vers l'ESP32 S3.
  • Basculez chaque position du commutateur DIP sur ON une par une.
  • Voyez le résultat dans le moniteur série — il ressemblera à la sortie ci-dessous.
  • Astuce : Pour un commutateur DIP avec davantage de positions, étendez la boucle d'encodage en conséquence ; la correspondance binaire-décimal s'adapte automatiquement.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-01-15 10:24:00] encoded state: 0 [2026-01-15 10:24:02] encoded state: 1 [2026-01-15 10:24:04] encoded state: 2 [2026-01-15 10:24:06] encoded state: 3 [2026-01-15 10:24:08] encoded state: 4 [2026-01-15 10:24:10] encoded state: 5 [2026-01-15 10:24:12] encoded state: 6 [2026-01-15 10:24:14] encoded state: 7 [2026-01-15 10:24:16] encoded state: 8 [2026-01-15 10:24:18] encoded state: 9 [2026-01-15 10:24:20] encoded state: 10 [2026-01-15 10:24:22] encoded state: 11 [2026-01-15 10:24:24] encoded state: 12 [2026-01-15 10:24:26] encoded state: 13 [2026-01-15 10:24:28] encoded state: 14 [2026-01-15 10:24:30] encoded state: 15
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Veuillez noter que la valeur encodée dépend de la position de chaque interrupteur à glissière individuel. Le tableau ci-dessous montre la correspondance complète entre les positions ON/OFF et l'entier résultant pour un commutateur DIP à 4 positions :

Position-1Position-2Position-3Position-4Valeur binaireValeur décimale
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

Applications

Les commutateurs DIP sont des outils de configuration polyvalents que l'on retrouve dans de nombreux projets ESP32 S3 pratiques et systèmes embarqués. Voici quelques applications courantes :

  1. Définition d'adresse d'appareil : Attribuer des adresses I2C ou RS485 uniques à plusieurs appareils identiques sur le même bus sans changer le firmware.
  2. Activation de fonctionnalités : Activer ou désactiver des fonctionnalités optionnelles telles que la sortie de débogage, le mode Wi-Fi, ou des modules périphériques au niveau matériel.
  3. Sélection du mode de fonctionnement : Basculer entre différents modes de fonctionnement (par exemple, maître/esclave, autonome/en réseau) en lisant la valeur DIP encodée au démarrage.
  4. Saisie de code de sécurité : Utiliser un commutateur DIP comme mécanisme de sécurité matériel simple pour protéger l'accès à un système ou à un boîtier.
  5. Décalages de calibrage : Stocker des décalages d'ajustement fin ou des réglages de gain pour des capteurs nécessitant un ajustement sur le terrain sans reprogrammation.

Vidéo

Regardez la vidéo pas à pas pour ce projet ESP32 S3 ci-dessous.

Défis

Approfondissez votre compréhension des commutateurs DIP avec l'ESP32 S3 en relevant ces exercices supplémentaires. Chaque défi s'appuie sur les compétences du tutoriel et vous encourage à explorer de nouveaux cas d'usage.

  1. Débutant : Modifiez le croquis de lecture pour contrôler une LED différente pour chaque position du commutateur DIP — allumant la LED quand la position est sur ON et l'éteignant quand elle est sur OFF.
  2. Intermédiaire : Utilisez l'entier encodé du croquis binaire pour définir l'adresse I2C d'un écran OLED ou d'un capteur à l'exécution, sans modifier le code source.
  3. Avancé : Construisez un réseau RS485 multi-appareils où chaque nœud lit sa propre adresse de commutateur DIP au démarrage et ne répond qu'aux commandes adressées à ce nœud.

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