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:

ESP32 C3 Super Mini - DIP-Schalter

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)
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

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.

DIP-Schalter Pinbelegung
image source: diyables.io
  • 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.
ESP32 C3 Super Mini DIP-Schalter Schaltplan

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
/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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-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); }

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.
∞
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

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
/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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-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); }

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.
∞
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

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.

Sprachreferenzen

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