Arduino UNO R4 - DIP-Schalter

DIP-Schalter (Dual-In-Line-Package) werden in der Elektronik häufig verwendet, um Geräte einzurichten, zum Beispiel Adressen festzulegen oder Funktionen ein- und auszuschalten. In diesem Leitfaden lernen wir, wie man einen DIP-Schalter mit dem Arduino UNO R4 verwendet. Wir werden Folgendes behandeln:

Arduino UNO R4 mit DIP-Schalter

Über DIP-Schalter

DIP-Schalter werden hauptsächlich verwendet, um Geräte zu konfigurieren, damit Benutzer Einstellungen wie Geräteadresse, Kommunikationsoptionen, Sicherheitscodes, Betriebsmodus und Systemeinstellungen für verschiedene Anwendungen und Branchen anpassen können.

Ein DIP-Schalter besteht aus mehreren winzigen Schiebeschaltern, die zu einer Einheit zusammengefügt sind. Jeder Schiebeschalter wird als „Position“ bezeichnet. Es gibt verschiedene Arten von DIP-Schaltern, von denen jeder eine bestimmte Anzahl von Positionen hat, z. B. 2, 4, 5, 6, 8 oder 10.

Ein DIP-Schalter kann so eingestellt werden, dass er verschiedene Zahlen darstellt. Jede Schalterposition entspricht einem Bit der Zahl. Durch das Umlegen dieser Positionen auf EIN oder AUS können wir die benötigte Zahl auswählen.

Pinbelegung

DIP-Schalter Pinbelegung
image source: diyables.io

Ein DIP-Schalter hat zwei Pin-Reihen. Die Anzahl der Pins in jeder Reihe entspricht der Anzahl der Schaltpositionen. Zum Beispiel hat ein DIP-Schalter mit 4 Positionen insgesamt 8 Pins, wobei sich pro Seite 4 Pins befinden. Jedes Paar Pins, das sich gegenübersteht, bildet einen Schiebeschalter. Es ist wichtig zu beachten, dass es keine Rolle spielt, auf welcher Seite sich ein Pin befindet, da die Pins austauschbar sind.

Wie es funktioniert

Wenn ein DIP-Schalter eingeschaltet ist, ist er geschlossen. Dadurch kann Strom durch den Schalter fließen.

Wenn ein Schalter AUS ist, ist er offen. Das bedeutet, dass die elektrische Verbindung unterbrochen ist und kein Strom durch den Schalter fließen kann.

Um es klarzustellen:

  • EIN-Position: Der Schaltkreis ist geschlossen, der Strom kann durchfließen.
  • AUS-Position: Der Schaltkreis ist geöffnet, der Strom kann nicht durchfließen.

Wenn Sie eine Seite des Schalters mit GND verbinden und die andere Seite mit dem Pin des Arduino UNO R4, und diesen Pin als Pull-Up-Digitaleingang konfigurieren, zeigt die untenstehende Tabelle die Beziehung zwischen der Stellung des Schalters und den vom Arduino UNO R4 ausgelesenen Werten.

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

In den folgenden Abschnitten verwenden wir einen DIP-Schalter mit vier Positionen als Beispiel. Sie können dies auch für DIP-Schalter mit zwei, drei, fünf, sechs, acht bzw. zehn Positionen anpassen.

Verdrahtungsdiagramm

Arduino UNO R4 DIP-Schalter Verdrahtungsdiagramm

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

Siehe Der beste Weg, den Arduino Uno R4 und andere Komponenten mit Strom zu versorgen.

Arduino UNO R4 Code - DIP-Schalter

Wir werden die Verwendung zweier Codebeispiele untersuchen:

  • Prüfen, ob jeder Schalter AN oder AUS ist.
  • Die Stellung dieser Schalter in eine Zahl umwandeln.

Arduino UNO R4-Code – Lesen des AN/AUS-Zustands des DIP-Schalters

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 2, 3, 4, 5 }; 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

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Wenn Sie dies zum ersten Mal mit dem Arduino Uno R4 WiFi/Minima verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino-IDE.
  • Verdrahten Sie die Komponenten gemäß dem bereitgestellten Diagramm.
  • Schließen Sie das Arduino Uno R4-Board mit einem USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das passende Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
  • Folgen Sie dem bereitgestellten Verdrahtungsdiagramm.
  • Schließen Sie das Arduino UNO R4-Board mit einem USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE-Software.
  • Wählen Sie das richtige Board und den Port aus.
  • Klicken Sie im Arduino IDE auf die Hochladen-Schaltfläche, um den Code an den Arduino UNO R4 zu senden.
  • Schalten Sie nacheinander jeden DIP-Schalter ein.
  • Überprüfen Sie die Ergebnisse im seriellen 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  

Arduino UNO R4 Code - Kodierung der Zustände des DIP-Schalters in eine Zahl

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 2, 3, 4, 5 }; 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

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Wenn dies das erste Mal ist, dass Sie den Arduino Uno R4 WiFi/Minima verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino IDE.
  • Verdrahten Sie die Bauteile gemäß dem bereitgestellten Diagramm.
  • Schließen Sie das Arduino Uno R4-Board mit einem USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das passende Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
  • Laden Sie den Code auf den Arduino UNO R4 hoch.
  • Schalten Sie jeden DIP-Schalter nacheinander ein.
  • Überprüfen Sie den seriellen Monitor, um die Ergebnisse zu sehen. Diese erscheinen wie folgt.
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  

Beachten Sie, dass sich der Wert je nach Stellung jedes Schiebeschalters ändert. Die untenstehende Tabelle zeigt, wie die Ein/Aus-Positionen den ganzzahligen Werten eines DIP-Schalters mit vier Positionen entsprechen:

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!