ESP32 - DIP Switch

DIP (Dual In-line Package) switches worden veel gebruikt in elektronica voor configuratiedoeleinden, zoals het instellen van apparaatadressen, het in- of uitschakelen van functies, enzovoort. In deze handleiding gaan we leren hoe u een DIP switch gebruikt met de ESP32. In detail behandelen we:

DIP (Dual In-line Package) switches worden vaak ingezet in elektronica voor configuratietaken, zoals het instellen van apparaatadressen, het activeren of deactiveren van functies en meer. In deze tutorial gaan we ontdekken hoe u de DIP switch samen met de ESP32 kunt gebruiken. Concreet behandelen we:

ESP32 met DIP Switch

Hardware Benodigdheden

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×DIP Schakelaar
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over DIP Switch

DIP switches zijn basiselementen voor apparaatconfiguratie, waarmee gebruikers parameters kunnen aanpassen zoals apparaatadressen, communicatie-instellingen, beveiligingscodes, bedieningsmodi en systeemvoorkeuren in diverse industrieën en toepassingen.

Een DIP switch bestaat uit meerdere kleine schuifschakelaars die bij elkaar gegroepeerd zijn, waarbij elke schakelaar een "positie" wordt genoemd. DIP switches zijn er in verschillende types, afhankelijk van het aantal beschikbare posities. Opties zijn onder andere 2-positie, 4-positie, 5-positie, 6-positie, 8-positie en 10-positie DIP switches...

Elke positie op een DIP switch correspondeert met een bit van een configureerbaar getal. Door de posities tussen AAN en UIT te wisselen, kunnen gebruikers de gewenste numerieke waarde instellen. Deze flexibiliteit maakt nauwkeurige parameterconfiguratie mogelijk volgens specifieke eisen.

Pinout

DIP Switch Pinout
image source: diyables.io

Een DIP switch bestaat uit twee rijen pinnen, waarbij het aantal pinnen per rij overeenkomt met het aantal posities van de switch. Bijvoorbeeld, een 4-positie DIP switch heeft in totaal 8 pinnen, gelijk verdeeld met 4 pinnen aan elke zijde. Binnen de structuur van de DIP switch vormt elk paar tegenoverliggende pinnen één schuifschakelaar. Het is belangrijk te weten dat het onderscheid maken tussen de pinnen van de twee zijden niet nodig is, omdat ze onderling verwisselbaar zijn.

Hoe Het Werkt

Bij DIP switches betekent een schakelaar in de AAN-positie dat de schakelaar gesloten is, waardoor er een elektrische verbinding ontstaat die stroomtoevoer mogelijk maakt.

Omgekeerd betekent een schakelaar in de UIT-positie dat de schakelaar open is. In deze staat is de elektrische verbinding verbroken, waardoor er geen stroom loopt.

Ter verduidelijking:

  • AAN-positie: Vormt een gesloten circuit, waardoor stroom kan vloeien
  • UIT-positie: Resultaat is een open circuit, waardoor stroom wordt geblokkeerd

Wanneer u één zijde van de switch verbindt met GND en de andere met een ESP32-pin, en de ESP32-pin configureert als een digitale input met pull-up, geeft de volgende tabel de relatie weer tussen de schakelaarpositie en de door de ESP32 gelezen waarden:

DIP switch positie Binaire weergave Circuit status ESP32 pin status
ON 1 GESLOTEN LOW
OFF 0 OPEN HIGH

In de volgende delen gebruiken we een 4-positie DIP switch als voorbeeld. U kunt dit gemakkelijk aanpassen voor 2-positie, 3-positie, 5-positie, 6-positie, 8-positie en 10-positie DIP switches.

Aansluitschema

ESP32 DIP switch Aansluitschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code - DIP Switch

We leren aan de hand van twee codevoorbeelden:

  • Lezen van de AAN/UIT-stand van individuele posities op de DIP switch.
  • Coderen van de posities naar een geheel getal.

ESP32 code - Lezen van de AAN/UIT-stand van de DIP switch

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 26, 27, 14, 12 }; 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); }

Snelle Stappen

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
  • Maak de verbindingen zoals op de bovenstaande afbeelding.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Maak de bedrading zoals bovenstaand aansluitschema
  • Verbind ESP32 met pc via USB-kabel
  • Open Arduino IDE
  • Selecteer het juiste board en poort
  • Klik op de Upload knop in Arduino IDE om de code naar de ESP32 te uploaden
  • Zet elke positie van de DIP Switch één voor één op AAN
  • Bekijk het resultaat in de Seriële Monitor.
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  

ESP32 code - Coderen van de standen van de DIP switch naar een getal

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 26, 27, 14, 12 }; 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); }

Snelle Stappen

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
  • Maak de verbindingen zoals op de bovenstaande afbeelding.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Upload de bovenstaande code naar de ESP32
  • Zet elke positie van de DIP switch één voor één op AAN
  • Bekijk het resultaat in de Seriële Monitor; dit ziet er ongeveer zo uit:
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  

Let op dat de waarde afhangt van de standen van elke schuifschakelaar. De onderstaande tabel toont de koppeling tussen de AAN/UIT-standen en de gehele waarde voor een 4-positie DIP switch:

Positie-1Positie-2Positie-3Positie-4Binaire WaardeDecimale Waarde
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

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en laat stap voor stap zien hoe de DIP switch werkt met de ESP32.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!