ESP32 C3 Super Mini - Interrupteur DIP

Un interrupteur DIP (Dual In-line Package) est un petit bloc d'interrupteurs à glissière que l'on règle à la main. Il sert à définir des adresses d'appareils, des paramètres de communication, des codes de sécurité et des modes de fonctionnement. Ce tutoriel vous montre comment utiliser un interrupteur DIP avec l'ESP32 C3 Super Mini.

Dans ce tutoriel, vous apprendrez :

ESP32 C3 Super Mini - Interrupteur DIP

Matériel Requis

1×ESP32 C3 Super Mini
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

Ou vous pouvez acheter les kits suivants:

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 de l'Interrupteur DIP

Un interrupteur DIP est un groupe de minuscules interrupteurs à glissière réunis dans un seul boîtier, et chaque petit interrupteur s'appelle une "position".

Caractéristiques principales :

  • Plusieurs interrupteurs en un seul composant : Chaque position est son propre interrupteur ON/OFF
  • Réglage à la main : Vous faites glisser une position avec la pointe d'un stylo ou un petit tournevis
  • Conserve son réglage : La valeur reste après la coupure de l'alimentation
  • Pas de polarité : Les deux broches d'une position peuvent être inversées
  • Adapté aux débutants : Fonctionne avec la logique 3,3V de l'ESP32 C3 Super Mini

Spécifications techniques :

  • Tailles courantes : 2, 4, 5, 6, 8 et 10 positions
  • Nombre de broches : 2 broches par position, la moitié sur chaque rangée
  • Type d'interrupteur : SPST mécanique par position
  • Résistance de contact : Proche de 0 ohm en position ON, très élevée en position OFF
  • Niveau logique utilisé ici : 3,3V fourni par l'ESP32 C3 Super Mini

Chaque position représente un bit d'un nombre. En faisant glisser les positions entre ON et OFF, vous définissez le nombre souhaité.

Brochage

Un interrupteur DIP possède deux rangées de broches, et chaque rangée compte autant de broches que de positions.

Brochage de l'Interrupteur DIP
image source: diyables.io
  • Broches de la rangée supérieure : Un côté de chaque interrupteur à glissière
  • Broches de la rangée inférieure : L'autre côté du même interrupteur à glissière
  • Paires de broches : Deux broches face à face forment une position
  • Pas d'ordre fixe : Les deux côtés peuvent être utilisés indifféremment
  • Exemple : Un interrupteur DIP à 4 positions possède 8 broches au total, 4 de chaque côté

Comment Ça Fonctionne

Chaque position d'un interrupteur DIP fonctionne comme un fil que vous pouvez ouvrir ou fermer.

  • Position ON : L'interrupteur est fermé, le courant peut donc passer
  • Position OFF : L'interrupteur est ouvert, le courant est donc bloqué

Câblez un côté d'une position à GND et l'autre côté à une broche de l'ESP32 C3 Super Mini configurée en entrée avec pull-up. Le tableau ci-dessous montre ce que vous lisez :

Position de l'interrupteur DIP Représentation binaire État du circuit État de la broche de l'ESP32 C3 Super Mini
ON 1 FERMÉ LOW
OFF 0 OUVERT HIGH

※ Note:

L'ESP32 C3 Super Mini utilise uniquement une logique 3,3V. Ne connectez jamais un signal 5V à une broche GPIO.

Les parties suivantes utilisent un interrupteur DIP à 4 positions comme exemple. Vous pouvez adapter la même idée aux interrupteurs DIP à 2, 3, 5, 6, 8 et 10 positions.

Schéma de Câblage

Connectez un côté de chaque position à une broche GPIO, et l'autre côté de chaque position à GND.

  • Remarque : Utilisez uniquement une logique 3,3V. N'appliquez pas de 5V sur une broche GPIO.
  • Remarque : GPIO8 et GPIO9 sont des broches de configuration du démarrage (strapping). Mettez les positions 3 et 4 sur OFF avant d'alimenter ou de réinitialiser la carte, sinon elle ne démarrera pas normalement.
  • Remarque : N'utilisez pas GPIO20 ni GPIO21 — le Moniteur Série les utilise.
  • Remarque : Les deux broches d'une même position peuvent être inversées.
Schéma de Câblage de l'ESP32 C3 Super Mini et de l'interrupteur DIP

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

Broche de l'interrupteur DIP Broche de l'ESP32 C3 Super Mini
Position 1 (côté A) GPIO6
Position 2 (côté A) GPIO7
Position 3 (côté A) GPIO8
Position 4 (côté A) GPIO9
Positions 1 à 4 (côté B) GND

Code ESP32 C3 Super Mini - Interrupteur DIP

Nous allons apprendre à travers deux exemples de code :

  • Lire l'état ON/OFF de chaque position de l'interrupteur DIP.
  • Coder les positions en un nombre.

Code ESP32 C3 Super Mini - Lire l'état ON/OFF de l'interrupteur DIP

Ce premier sketch affiche l'état de chaque position, une ligne par position.

Ce que fait ce code :

  • Configure GPIO6, GPIO7, GPIO8 et GPIO9 en entrées avec la résistance de pull-up interne activée
  • Lit chaque position de l'interrupteur DIP toutes les demi-secondes
  • Affiche ON lorsque la broche lit LOW, ce qui signifie que l'interrupteur est fermé
  • Affiche OFF lorsque la broche lit HIGH, ce qui signifie que l'interrupteur est ouvert
  • Ajoute un petit délai pour que le Moniteur Série reste facile à lire
/* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the ESP32 C3 SuperMini pins connected to the dip switch const int SWITCH_PINS[] = { 6, 7, 8, 9 }; void setup() { // initialize serial communication Serial.begin(115200); // 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 C3 Super Mini ? Suivez d'abord notre tutoriel ESP32 C3 Super Mini - Premiers pas pour configurer votre environnement de développement.
  • Câblez les composants : Suivez le schéma de câblage ci-dessus pour connecter l'interrupteur DIP à l'ESP32 C3 Super Mini.
  • Connectez la carte : Branchez l'ESP32 C3 Super Mini à votre PC avec un câble USB Type-C.
  • Ouvrez Arduino IDE : Lancez le logiciel Arduino IDE.
  • Sélectionnez la carte : Assurez-vous que ESP32 C3 Super Mini est sélectionnée dans Tools > Board.
  • Sélectionnez le port : Choisissez le port COM de votre ESP32 C3 Super Mini dans Tools > Port.
  • Téléversez le code : Copiez le code ci-dessus, collez-le dans Arduino IDE, puis cliquez sur le bouton Téléverser.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Faites glisser les positions : Mettez chaque position de l'interrupteur DIP sur ON, une par une.
  • Observez le résultat : Regardez le Moniteur Série afficher les nouveaux états.
  • Astuce Pro : Si une position lit toujours ON, vérifiez que son fil GND ne touche pas le fil GPIO.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Code ESP32 C3 Super Mini - Coder les états de l'interrupteur DIP en un nombre

Ce second sketch transforme les quatre positions en un seul nombre décimal.

Ce que fait ce code :

  • Lit les quatre mêmes broches : GPIO6, GPIO7, GPIO8 et GPIO9
  • Utilise la position 1 comme bit de poids fort et la position 4 comme bit de poids faible
  • Met un bit à 1 lorsque sa position est ON
  • Affiche le nombre final, de 0 à 15 pour un interrupteur DIP à 4 positions
  • Répète la lecture toutes les demi-secondes
/* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the ESP32 C3 SuperMini pins connected to the dip switch const int SWITCH_PINS[] = { 6, 7, 8, 9 }; void setup() { // Initialize serial communication Serial.begin(115200); // 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 C3 Super Mini ? Suivez d'abord notre tutoriel ESP32 C3 Super Mini - Premiers pas pour configurer votre environnement de développement.
  • Gardez le même câblage : Le schéma de câblage ci-dessus ne change pas.
  • Connectez la carte : Branchez l'ESP32 C3 Super Mini à votre PC avec un câble USB Type-C.
  • Ouvrez Arduino IDE : Lancez le logiciel Arduino IDE.
  • Sélectionnez la carte : Assurez-vous que ESP32 C3 Super Mini est sélectionnée dans Tools > Board.
  • Sélectionnez le port : Choisissez le port COM de votre ESP32 C3 Super Mini dans Tools > Port.
  • Téléversez le code : Copiez le second code ci-dessus, collez-le dans Arduino IDE, puis cliquez sur le bouton Téléverser.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Faites glisser les positions : Mettez chaque position de l'interrupteur DIP sur ON, une par une.
  • Observez le résultat : Le nombre affiché change à mesure que vous faites glisser les positions.
  • Astuce Pro : Un interrupteur DIP à 8 positions vous donne de 0 à 255. Il suffit de modifier POSITION_NUM et d'ajouter des broches.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

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

Position-1 Position-2 Position-3 Position-4 Valeur binaire Valeur 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

Explication du Code Ligne par Ligne

Le code ESP32 C3 Super Mini ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

Idées d'Applications/Projets

Voici des façons simples d'utiliser un interrupteur DIP avec l'ESP32 C3 Super Mini.

  • Adresse d'appareil : Attribuez un numéro à chaque carte pour que plusieurs cartes puissent partager un même bus.
  • Sélecteur de mode : Choisissez l'un des 16 modes de programme sans modifier le code.
  • Serrure à code secret : N'activez un relais que lorsque la bonne combinaison est réglée.
  • Calibrage de capteur : Choisissez un palier de seuil pour la lecture d'un capteur.
  • Sélecteur de profil Wi-Fi : Choisissez à quel réseau Wi-Fi enregistré la carte se connecte.
  • Sélecteur de motif LED : Changez une animation lumineuse en faisant glisser une seule position.

Relevez le Défi

Essayez ces étapes pour aller plus loin avec l'ESP32 C3 Super Mini et un interrupteur DIP.

  • Facile : Allumez une LED externe sur GPIO3 lorsque la position 1 est sur ON.
  • Facile : Affichez la valeur en binaire avec Serial.println(encoded_state, BIN).
  • Moyen : N'affichez un message que lorsque le nombre codé change.
  • Moyen : Utilisez le nombre pour régler une vitesse de clignotement, de rapide à lente.
  • Avancé : Ajoutez une 5e et une 6e position sur GPIO2 et GPIO4 pour des valeurs de 0 à 63.
  • Avancé : Envoyez la valeur de l'interrupteur DIP via Wi-Fi vers une page web.

Références du Langage

Commentaires

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