ESP32 C3 Super Mini - DIP-Schalter
Ein DIP-Schalter (Dual In-line Package) ist ein kleiner Block aus Schiebeschaltern, die Sie von Hand einstellen. Er wird für Geräteadressen, Kommunikationseinstellungen, Sicherheitscodes und Betriebsmodi verwendet. Dieses Tutorial zeigt Ihnen, wie Sie einen DIP-Schalter mit dem ESP32 C3 Super Mini verwenden.
In diesem Tutorial lernen Sie:
- Was ein DIP-Schalter ist und wie jede Position funktioniert
- Wie man einen DIP-Schalter mit dem ESP32 C3 Super Mini verdrahtet
- Wie man den EIN/AUS-Zustand jeder Position im Code ausliest
- Wie man die Positionen in eine Zahl umwandelt (Binärkodierung)
- Projektideen, die einen DIP-Schalter verwenden

Erforderliche Hardware
| 1 | × | ESP32 C3 Super Mini | |
| 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 |
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über DIP Switch
Ein DIP-Schalter ist eine Gruppe winziger Schiebeschalter in einem Gehäuse, und jeder kleine Schalter wird als "Position" bezeichnet.
Hauptmerkmale:
- Viele Schalter in einem Bauteil: Jede Position ist ein eigener EIN/AUS-Schalter
- Von Hand einstellbar: Sie schieben eine Position mit einer Kugelschreiberspitze oder einem kleinen Schraubendreher
- Behält seine Einstellung: Der Wert bleibt auch nach dem Ausschalten erhalten
- Keine Polarität: Die beiden Pins einer Position können vertauscht werden
- Einsteigerfreundlich: Funktioniert mit der 3,3V-Logik des ESP32 C3 Super Mini
Technische Daten:
- Übliche Größen: 2, 4, 5, 6, 8 und 10 Positionen
- Pinanzahl: 2 Pins pro Position, je die Hälfte auf jeder Reihe
- Schaltertyp: Mechanischer SPST pro Position
- Kontaktwiderstand: Nahezu 0 Ohm bei EIN, sehr hoch bei AUS
- Hier verwendeter Logikpegel: 3,3V vom ESP32 C3 Super Mini
Jede Position steht für ein Bit einer Zahl. Indem Sie die Positionen zwischen EIN und AUS verschieben, stellen Sie die gewünschte Zahl ein.
Pinbelegung
Ein DIP-Schalter hat zwei Pinreihen, und jede Reihe hat so viele Pins wie Positionen.

- Pins der oberen Reihe: Eine Seite jedes Schiebeschalters
- Pins der unteren Reihe: Die andere Seite desselben Schiebeschalters
- Pinpaare: Zwei gegenüberliegende Pins bilden eine Position
- Keine feste Reihenfolge: Die beiden Seiten sind austauschbar
- Beispiel: Ein 4-poliger DIP-Schalter hat insgesamt 8 Pins, 4 auf jeder Seite
Funktionsweise
Jede Position eines DIP-Schalters funktioniert wie ein Draht, den Sie öffnen oder schließen können.
- Position EIN: Der Schalter ist geschlossen, sodass Strom fließen kann
- Position AUS: Der Schalter ist offen, sodass der Strom blockiert wird
Verbinden Sie eine Seite einer Position mit GND und die andere Seite mit einem ESP32 C3 Super Mini Pin, der als Pull-up-Eingang konfiguriert ist. Die folgende Tabelle zeigt, was Sie auslesen:
| Position des DIP-Schalters | Binäre Darstellung | Schaltungszustand | Zustand des ESP32 C3 Super Mini Pins |
|---|---|---|---|
| EIN | 1 | GESCHLOSSEN | LOW |
| AUS | 0 | OFFEN | HIGH |
※ Notiz:
Der ESP32 C3 Super Mini verwendet ausschließlich 3,3V-Logik. Verbinden Sie niemals ein 5V-Signal mit einem GPIO-Pin.
Die nächsten Abschnitte verwenden einen 4-poligen DIP-Schalter als Beispiel. Sie können dasselbe Prinzip für 2-, 3-, 5-, 6-, 8- und 10-polige DIP-Schalter anpassen.
Verdrahtungsdiagramm
Verbinden Sie eine Seite jeder Position mit einem GPIO-Pin und die andere Seite jeder Position mit GND.
- Hinweis: Verwenden Sie nur 3,3V-Logik. Legen Sie keine 5V an einen GPIO-Pin an.
- Hinweis: GPIO8 und GPIO9 sind Boot-Strapping-Pins. Schieben Sie die Positionen 3 und 4 auf AUS, bevor Sie das Board einschalten oder zurücksetzen, sonst startet es nicht normal.
- Hinweis: Verwenden Sie nicht GPIO20 oder GPIO21 — der Serielle Monitor nutzt diese Pins.
- Hinweis: Die beiden Pins einer Position können vertauscht werden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| DIP-Schalter-Pin | ESP32 C3 Super Mini Pin |
|---|---|
| Position 1 (Seite A) | GPIO6 |
| Position 2 (Seite A) | GPIO7 |
| Position 3 (Seite A) | GPIO8 |
| Position 4 (Seite A) | GPIO9 |
| Position 1 bis 4 (Seite B) | GND |
ESP32 C3 Super Mini Code - DIP-Schalter
Wir lernen anhand von zwei Codebeispielen:
- Auslesen des EIN/AUS-Zustands jeder Position des DIP-Schalters.
- Kodieren der Positionen in eine Zahl.
ESP32 C3 Super Mini Code - Auslesen des EIN/AUS-Zustands des DIP-Schalters
Dieser erste Sketch gibt den Zustand jeder Position aus, eine Zeile pro Position.
Was dieser Code macht:
- Konfiguriert GPIO6, GPIO7, GPIO8 und GPIO9 als Eingänge mit aktiviertem internem Pull-up
- Liest jede Position des DIP-Schalters jede halbe Sekunde aus
- Gibt ON aus, wenn der Pin LOW liest, was bedeutet, dass der Schalter geschlossen ist
- Gibt OFF aus, wenn der Pin HIGH liest, was bedeutet, dass der Schalter offen ist
- Fügt eine kleine Verzögerung hinzu, damit der Serielle Monitor gut lesbar bleibt
Schnelle Schritte
- Neu beim ESP32 C3 Super Mini? Arbeiten Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini durch, um Ihre Entwicklungsumgebung einzurichten.
- Bauteile verdrahten: Folgen Sie dem obigen Schaltplan, um den DIP-Schalter mit dem ESP32 C3 Super Mini zu verbinden.
- Board anschließen: Verbinden Sie den ESP32 C3 Super Mini über ein USB-Type-C-Kabel mit Ihrem PC.
- Arduino IDE öffnen: Starten Sie die Arduino IDE.
- Board auswählen: Stellen Sie sicher, dass unter Werkzeuge > Board der ESP32 C3 Super Mini ausgewählt ist.
- Port auswählen: Wählen Sie unter Werkzeuge > Port den COM-Port Ihres ESP32 C3 Super Mini.
- Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf die Schaltfläche Upload.
- Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
- Positionen verschieben: Schieben Sie jede Position des DIP-Schalters nacheinander auf EIN.
- Ergebnis ansehen: Beobachten Sie, wie der Serielle Monitor die neuen Zustände ausgibt.
- Profi-Tipp: Wenn eine Position immer ON anzeigt, prüfen Sie, ob ihr GND-Draht den GPIO-Draht berührt.
ESP32 C3 Super Mini Code - Kodieren der Zustände des DIP-Schalters in eine Zahl
Dieser zweite Sketch wandelt die vier Positionen in eine Dezimalzahl um.
Was dieser Code macht:
- Liest dieselben vier Pins aus: GPIO6, GPIO7, GPIO8 und GPIO9
- Verwendet Position 1 als höchstwertiges Bit und Position 4 als niederwertigstes Bit
- Setzt ein Bit auf 1, wenn seine Position auf EIN steht
- Gibt die endgültige Zahl aus, von 0 bis 15 bei einem 4-poligen DIP-Schalter
- Wiederholt das Auslesen jede halbe Sekunde
Schnelle Schritte
- Neu beim ESP32 C3 Super Mini? Arbeiten Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini durch, um Ihre Entwicklungsumgebung einzurichten.
- Gleiche Verdrahtung beibehalten: Der obige Schaltplan ändert sich nicht.
- Board anschließen: Verbinden Sie den ESP32 C3 Super Mini über ein USB-Type-C-Kabel mit Ihrem PC.
- Arduino IDE öffnen: Starten Sie die Arduino IDE.
- Board auswählen: Stellen Sie sicher, dass unter Werkzeuge > Board der ESP32 C3 Super Mini ausgewählt ist.
- Port auswählen: Wählen Sie unter Werkzeuge > Port den COM-Port Ihres ESP32 C3 Super Mini.
- Code hochladen: Kopieren Sie den zweiten Code oben, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf die Schaltfläche Upload.
- Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
- Positionen verschieben: Schieben Sie jede Position des DIP-Schalters nacheinander auf EIN.
- Ergebnis ansehen: Die ausgegebene Zahl ändert sich, während Sie die Positionen verschieben.
- Profi-Tipp: Ein 8-poliger DIP-Schalter liefert Werte von 0 bis 255. Ändern Sie einfach POSITION_NUM und fügen Sie weitere Pins hinzu.
Der Wert hängt von der Stellung jedes Schiebeschalters ab. Die folgende Tabelle zeigt die Zuordnung zwischen den EIN/AUS-Positionen und dem ganzzahligen Wert bei einem 4-poligen DIP-Schalter:
| Position-1 | Position-2 | Position-3 | Position-4 | Binärwert | Dezimalwert |
|---|---|---|---|---|---|
| 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 |
Zeilenweise Code-Erklärung
Der obige ESP32 C3 Super Mini Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
Anwendungs- und Projektideen
Hier sind einfache Möglichkeiten, einen DIP-Schalter mit dem ESP32 C3 Super Mini zu verwenden.
- Geräteadresse: Geben Sie jedem Board eine Nummer, damit viele Boards einen Bus gemeinsam nutzen können.
- Modusauswahl: Wählen Sie einen von 16 Programmmodi, ohne den Code zu ändern.
- Geheimcode-Schloss: Schalten Sie ein Relais nur dann, wenn das richtige Muster eingestellt ist.
- Sensorkalibrierung: Wählen Sie eine Schwellenwertstufe für einen Sensormesswert.
- WLAN-Profilauswahl: Wählen Sie aus, mit welchem gespeicherten WLAN-Netzwerk sich das Board verbindet.
- LED-Musterauswahl: Ändern Sie eine Lichtanimation durch Verschieben einer Position.
Fordern Sie sich heraus
Probieren Sie diese Schritte aus, um mit dem ESP32 C3 Super Mini und einem DIP-Schalter weiterzukommen.
- Einfach: Schalten Sie eine externe LED an GPIO3 EIN, wenn Position 1 auf EIN steht.
- Einfach: Geben Sie den Wert mit Serial.println(encoded_state, BIN) in Binärform aus.
- Mittel: Geben Sie nur dann eine Meldung aus, wenn sich die kodierte Zahl ändert.
- Mittel: Verwenden Sie die Zahl, um eine Blinkgeschwindigkeit von schnell bis langsam einzustellen.
- Fortgeschritten: Fügen Sie eine 5. und 6. Position an GPIO2 und GPIO4 für Werte von 0 bis 63 hinzu.
- Fortgeschritten: Senden Sie den Wert des DIP-Schalters über WLAN an eine Webseite.