ESP32 S3 - DIP-Schalter

DIP-Schalter (Dual In-line Package) werden in der Elektronik häufig zu Konfigurationszwecken verwendet, etwa um Geräteadressen festzulegen, Funktionen ein- oder auszuschalten und Betriebsmodi zu definieren. In diesem Tutorial lernen Sie, wie Sie einen DIP-Schalter mit dem ESP32 S3 Board verbinden und verwenden.

ESP32 S3 - DIP-Schalter

Was Sie bauen werden:

  1. Den ON/OFF-Zustand jeder einzelnen Position des DIP-Schalters auslesen
  2. Alle Positionen des DIP-Schalters in einen einzigen ganzzahligen Wert kodieren
  3. Die Ergebnisse in Echtzeit im Seriellen Monitor von Arduino anzeigen
  4. Die Technik auf jeden DIP-Schalter mit 2 bis 10 Positionen anwenden

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×DIP Schalter
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Überblick über DIP Switch

DIP-Schalter sind grundlegende Bauteile für die Gerätekonfiguration und ermöglichen es Benutzern, Parameter wie Geräteadressen, Kommunikationseinstellungen, Sicherheitscodes, Betriebsmodi und Systemeinstellungen in vielen Branchen und Anwendungen anzupassen. Jede Position eines DIP-Schalters entspricht einem einzelnen Bit einer konfigurierbaren Binärzahl, was sie zu einer kompakten und zuverlässigen Möglichkeit macht, Hardwareoptionen ohne Software einzustellen. Durch Umschalten der Positionen zwischen ON und OFF können Sie numerische Werte und Funktions-Flags präzise festlegen, die der ESP32 S3 beim Start oder während des Betriebs ausliest.

Wichtige Spezifikationen

Ein DIP-Schalter besteht aus mehreren kleinen Schiebeschaltern, die zusammengefasst sind, wobei jeder einzelne Schalter "Position" genannt wird. DIP-Schalter sind in Varianten mit 2, 4, 5, 6, 8 und 10 Positionen erhältlich. Jede Position eines DIP-Schalters entspricht einem Bit einer konfigurierbaren Zahl, und durch Umschalten der Positionen zwischen ON und OFF können Sie einen gewünschten Zahlenwert sehr genau einstellen.

Pinbelegung

Ein DIP-Schalter besteht aus zwei Pinreihen, wobei die Anzahl der Pins in jeder Reihe der Anzahl der Schalterpositionen entspricht.

  1. Zwei Pinreihen — eine Reihe auf jeder Seite des Schaltergehäuses
  2. Ein DIP-Schalter mit 4 Positionen hat insgesamt 8 Pins (4 pro Seite)
  3. Jedes Paar gegenüberliegender Pins bildet einen Schiebeschalter
  4. Die Pins auf beiden Seiten sind austauschbar — die Polarität spielt keine Rolle
DIP-Schalter Pinbelegung
image source: diyables.io

Wie es funktioniert

Wenn eine Schalterposition auf ON steht, ist der Stromkreis zwischen den beiden zugehörigen Pins geschlossen, und Strom kann fließen. Wenn eine Position auf OFF steht, ist der Stromkreis offen, und es kann kein Strom fließen.

Sicherheitshinweise

Verbinden Sie eine Seite jeder Schalterposition mit GND und die andere Seite mit einem GPIO-Pin des ESP32 S3, der als digitaler Eingang mit Pull-up konfiguriert ist. Dadurch bleibt der Pin in einem definierten HIGH-Zustand, wenn der Schalter offen ist, und wird auf LOW gezogen, wenn der Schalter geschlossen ist.

Position des DIP-Schalters Binäre Darstellung Zustand des Stromkreises Zustand des ESP32 S3 Pins
ON 1 GESCHLOSSEN LOW
OFF 0 OFFEN HIGH

In den folgenden Abschnitten wird ein DIP-Schalter mit 4 Positionen als Beispiel verwendet. Sie können Code und Verdrahtung leicht an DIP-Schalter mit 2, 3, 5, 6, 8 und 10 Positionen anpassen.

Verdrahtungsdiagramm

ESP32 S3 DIP-Schalter Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

ESP32 S3 Code - DIP-Schalter

Die folgenden Abschnitte stellen zwei sich ergänzende Sketches vor, die beide Möglichkeiten zeigen, einen DIP-Schalter mit dem ESP32 S3 zu verwenden. Der erste Sketch liest jede Position einzeln aus, während der zweite alle Positionen in eine einzige Ganzzahl kodiert. Beide Sketches verwenden interne Pull-up-Widerstände, daher sind keine externen Widerstände erforderlich.

ESP32 S3 Code - Den ON/OFF-Zustand des DIP-Schalters auslesen

Der folgende Code liest jede Position des DIP-Schalters unabhängig aus und gibt ihren Zustand ON oder OFF im Seriellen Monitor aus. Dieser Ansatz ist nützlich, wenn jede Position eine eigene Funktion oder Einstellung in Ihrem ESP32 S3 Projekt steuert.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  • Neu beim ESP32 S3? Absolvieren Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3.
  • Führen Sie die Verdrahtung wie im obigen Diagramm gezeigt durch.
  • Verbinden Sie das ESP32 S3 Board über ein USB-Type-C-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32 S3 Board und den COM-Port aus.
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den ESP32 S3 hochzuladen.
  • Schalten Sie jede Position des DIP-Schalters nacheinander auf ON.
  • Sehen Sie sich das Ergebnis im Seriellen Monitor an.
  • Profi-Tipp: Wenn Sie dies für mehr Positionen anpassen, fügen Sie einfach weitere Pin-Definitionen und Schleifendurchläufe hinzu, passend zur Anzahl der Positionen Ihres DIP-Schalters.
∞
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

ESP32 S3 Code - Die Zustände des DIP-Schalters in eine Zahl kodieren

Der folgende Code behandelt jede Position des DIP-Schalters als einzelnes Bit und fasst alle Positionen zu einem ganzzahligen Wert zusammen. Das ist ideal, um Konfigurationscodes, Geräteadressen oder Mehrbit-Einstellungen in einem einzigen Vorgang auf Ihrem ESP32 S3 auszulesen.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  • Neu beim ESP32 S3? Absolvieren Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3.
  • Führen Sie die Verdrahtung wie im obigen Diagramm gezeigt durch.
  • Verbinden Sie das ESP32 S3 Board über ein USB-Type-C-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32 S3 Board und den COM-Port aus.
  • Laden Sie den obigen Code auf den ESP32 S3 hoch.
  • Schalten Sie jede Position des DIP-Schalters nacheinander auf ON.
  • Sehen Sie sich das Ergebnis im Seriellen Monitor an — es sieht aus wie die folgende Ausgabe.
  • Profi-Tipp: Erweitern Sie bei einem DIP-Schalter mit mehr Positionen die Kodierungsschleife entsprechend; die Umrechnung von binär zu dezimal skaliert automatisch.
∞
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

Bitte beachten Sie, dass der kodierte Wert von der Stellung jedes einzelnen Schiebeschalters abhängt. Die folgende Tabelle zeigt die vollständige Zuordnung zwischen den ON/OFF-Positionen und der resultierenden Ganzzahl für einen DIP-Schalter mit 4 Positionen:

Position-1Position-2Position-3Position-4BinärwertDezimalwert
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

Anwendungen

DIP-Schalter sind vielseitige Konfigurationswerkzeuge, die in vielen praktischen ESP32 S3 Projekten und eingebetteten Systemen vorkommen. Hier sind einige häufige Anwendungen:

  1. Einstellen der Geräteadresse: Weisen Sie mehreren identischen Geräten am selben Bus eindeutige I2C- oder RS485-Adressen zu, ohne die Firmware zu ändern.
  2. Funktionen umschalten: Aktivieren oder deaktivieren Sie optionale Funktionen wie Debug-Ausgaben, den WLAN-Modus oder Peripheriemodule auf Hardwareebene.
  3. Auswahl des Betriebsmodus: Wechseln Sie zwischen verschiedenen Betriebsmodi (z. B. Master/Slave, eigenständig/vernetzt), indem Sie beim Start den kodierten DIP-Wert auslesen.
  4. Eingabe eines Sicherheitscodes: Verwenden Sie einen DIP-Schalter als einfachen Hardware-Sicherheitsmechanismus, um den Zugang zu einem System oder Gehäuse zu schützen.
  5. Kalibrierungs-Offsets: Speichern Sie Feinabstimmungs-Offsets oder Verstärkungseinstellungen für Sensoren, die vor Ort ohne Neuprogrammierung angepasst werden müssen.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.

Herausforderungen

Vertiefen Sie Ihr Verständnis von DIP-Schaltern mit dem ESP32 S3, indem Sie sich diesen zusätzlichen Übungen stellen. Jede Herausforderung baut auf den Fähigkeiten aus dem Tutorial auf und regt Sie an, neue Anwendungsfälle zu erkunden.

  1. Einsteiger: Ändern Sie den Lese-Sketch so, dass für jede Position des DIP-Schalters eine eigene LED gesteuert wird — die LED leuchtet, wenn die Position auf ON steht, und ist aus, wenn sie auf OFF steht.
  2. Fortgeschritten: Verwenden Sie die kodierte Ganzzahl aus dem Binär-Sketch, um die I2C-Adresse eines OLED-Displays oder Sensors zur Laufzeit festzulegen, ohne den Quellcode zu ändern.
  3. Profi: Bauen Sie ein RS485-Netzwerk mit mehreren Geräten, in dem jeder Knoten beim Start seine eigene DIP-Schalter-Adresse ausliest und nur auf Befehle reagiert, die an diesen Knoten adressiert sind.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!