ESP8266 - DIP-Schalter

DIP-Schalter (Dual-In-Line-Package) finden in der Elektronik breite Verwendung für verschiedene Konfigurationsaufgaben, wie Geräteadressen, Kommunikationseinstellungen, Sicherheitscodes. Dieses Tutorial wird darauf eingehen, den DIP-Schalter mit dem ESP8266 zu verwenden. Konkret werden wir Folgendes behandeln:

ESP8266 NodeMCU mit DIP-Schalter

Erforderliche Hardware

1×ESP8266 NodeMCU
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) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
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.

Über DIP-Schalter

DIP-Schalter werden hauptsächlich verwendet, um Geräte zu konfigurieren, damit Benutzer Einstellungen wie Geräteadresse, Kommunikationsparameter, Sicherheitscodes, Betriebsmodi und Systemeinstellungen in verschiedenen Branchen und Anwendungen anpassen können.

Ein DIP-Schalter besteht aus mehreren kleinen Schiebeschaltern, die zu einer Einheit zusammengefasst sind. Jeder dieser Schiebeschalter wird als eine „Position“ bezeichnet. DIP-Schalter sind in verschiedenen Typen erhältlich, abhängig von der Anzahl der Positionen, die sie bieten. Zum Beispiel gibt es DIP-Schalter mit 2, 4, 5, 6, 8 bzw. 10 Positionen.

Ein DIP-Schalter kann eine konfigurierbare Zahl darstellen. Jede Stellung des Schalters entspricht einem Bit der Zahl. Indem man die Positionen zwischen EIN und AUS umschaltet, können wir die gewünschte Zahl festlegen.

Pinbelegung

DIP-Schalter Pinbelegung
image source: diyables.io

Ein DIP-Schalter besteht aus zwei Reihen von Pins, wobei die Anzahl der Pins in jeder Reihe den verfügbaren Schaltstellungen entspricht. Zum Beispiel umfasst ein DIP-Schalter mit vier Positionen insgesamt acht Pins, gleichmäßig verteilt, mit jeweils vier Pins auf jeder Seite. Innerhalb der DIP-Schalterstruktur bildet jedes Paar gegenüberliegender Pins einen Schiebeschalter. Es ist zu beachten, dass eine Unterscheidung zwischen Pins auf den beiden Seiten nicht erforderlich ist, da sie austauschbar verwendet werden können.

Wie es funktioniert

Bei DIP-Schaltern bedeutet der Schalter in der ON-Position, dass der Schalter geschlossen ist. Dies deutet darauf hin, dass die elektrische Verbindung hergestellt ist und der Strom durch den Schalter fließen kann.

Umgekehrt gilt: Wenn sich ein Schalter in der OFF-Position befindet, ist er geöffnet. In diesem Zustand ist die elektrische Verbindung unterbrochen, und der Strom kann nicht durch den Schalter fließen.

Also, zusammengefasst:

  • EIN-Position: geschlossener Stromkreis, der den Stromfluss ermöglicht.
  • AUS-Position: offener Stromkreis, der den Stromfluss blockiert.

Wenn wir eine Seite eines Schalters mit GND verbinden und die andere Seite mit einem ESP8266-Pin, konfigurieren wir den ESP8266-Pin als Pull-up-Digitaleingang; die folgende Tabelle veranschaulicht die Beziehung zwischen den Schalterstellungen und den vom ESP8266 gelesenen Werten:

DIP switch position Binary representation Circuit state ESP8266 pin state
ON 1 CLOSED LOW
OFF 0 OPEN HIGH

In den nächsten Abschnitten verwenden wir zum Beispiel einen DIP-Schalter mit 4 Positionen. Sie können ihn leicht auf DIP-Schalter mit 2, 3, 5, 6, 8 oder 10 Positionen anpassen.

Verdrahtungsdiagramm

ESP8266 NodeMCU DIP-Schalter Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266-Code – DIP-Schalter

Wir werden durch zwei Code-Beispiele lernen:

  • Lesen des Ein/Aus-Zustands jeder einzelnen Position am DIP-Schalter.
  • Die Positionen in eine Zahl codieren.

ESP8266-Code – Lesen des Ein/Aus-Zustands des DIP-Schalters

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the ESO8266 pins connected to the dip switch const int SWITCH_PINS[] = { D7, D6, D5, D2 }; 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

Um mit dem ESP8266 in der Arduino IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erstes Mal mit ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
  • Verdrahte entsprechend dem oben gezeigten Verdrahtungsdiagramm.
  • Verbinde den ESP8266 über ein USB-Kabel mit dem PC.
  • Öffne die Arduino IDE.
  • Wähle das richtige Board und den richtigen Port aus.
  • Klicke im Arduino IDE auf Upload, um den Code auf den ESP8266 hochzuladen.
  • Schalte nacheinander jede DIP-Schalterposition auf ON.
  • Sieh dir das Ergebnis im Serial Monitor an.
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  

ESP8266-Code – Kodierung der Zustände des DIP-Schalters in eine Zahl

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the ESO8266 pins connected to the dip switch const int SWITCH_PINS[] = { D7, D6, D5, D2 }; 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

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino-IDE an, falls dies dein erster Umgang mit dem ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, zum Beispiel (z. B. NodeMCU 1.0 (ESP-12E Module)), und seinen entsprechenden COM-Port.
  • Lade den oben gezeigten Code auf den ESP8266 hoch.
  • Schalte nacheinander jede Position des DIP-Schalters auf ON.
  • Sieh dir das Ergebnis im Serial Monitor an; es sieht unten so aus.
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  

Bitte beachten Sie, dass der Wert von den Positionen der einzelnen Schalter abhängt. Die folgende Tabelle zeigt die Zuordnung zwischen der ON/OFF-Position und dem Ganzzahlwert für einen DIP-Schalter mit vier Positionen:

Position-1Position-2Position-3Position-4Binary ValueDecimal Value
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

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.

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