Arduino Nano - DIP-Schalter

DIP-Schalter (Dual-In-Line-Package) finden in der Elektronik häufig Anwendung bei Konfigurationsaufgaben, wie Geräteadressen, Kommunikationseinstellungen, Sicherheitscodes, Betriebsmodus... Dieses Tutorial wird darauf eingehen, wie man den DIP-Schalter mit dem Arduino Nano verwendet. Konkret behandeln wir Folgendes:

Arduino Nano mit DIP-Schalter

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×DIP Schalter
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

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 zur Konfiguration von Geräten verwendet und ermöglichen es Benutzern, Parameter wie Geräteadressen, Kommunikationseinstellungen, Sicherheitscodes, Betriebsmodi und Systemeinstellungen in verschiedenen Branchen und Anwendungen festzulegen.

Ein DIP-Schalter besteht aus mehreren kleinen Schiebeschaltern, die zusammengefasst sind, wobei jeder Schiebeschalter als „Position“ bezeichnet wird. DIP-Schalter sind in verschiedenen Typen erhältlich, die durch die Anzahl der Positionen bestimmt werden, die sie besitzen. Zum Beispiel gibt es 2-Position-DIP-Schalter, 4-Position-DIP-Schalter, 5-Position-DIP-Schalter, 6-Position-DIP-Schalter, 8-Position-DIP-Schalter und 10-Position-DIP-Schalter.

Jede Position eines DIP-Schalters repräsentiert ein konfigurierbares Bit einer Zahl. Indem man die Positionen zwischen EIN und AUS umschaltet, kann man den gewünschten numerischen Wert einstellen.

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 Schaltpositionen entspricht. Zum Beispiel umfasst ein DIP-Schalter mit 4 Positionen insgesamt 8 Pins, gleichmäßig verteilt, mit je 4 Pins pro Seite. Bei der Montage des DIP-Schalters bildet jedes Paar gegenüberliegender Pins einen Schiebeschalter. Es ist wichtig zu beachten, dass es nicht notwendig ist, zwischen Pins auf den beiden Seiten zu unterscheiden, da sie vertauschbar sind.

Wie es funktioniert

Bei DIP-Schaltern bedeutet die ON-Position, dass der Kontakt geschlossen ist. Dadurch wird eine elektrische Verbindung hergestellt, durch die der Strom fließen kann.

Umgekehrt bedeutet dies, dass sich der Schalter in der Aus-Position befindet; in diesem Zustand ist die elektrische Verbindung unterbrochen, wodurch der Strom nicht durch den Schalter fließen kann.

Zusammenfassend:

  • AN-Stellung: Der Schaltkreis ist geschlossen, der Stromfluss wird ermöglicht.
  • AUS-Stellung: Der Schaltkreis ist geöffnet, der Stromfluss wird blockiert.

Wenn wir eine Seite eines Schalters mit GND verbinden und die andere Seite an einen Pin des Arduino Nano anschließen und diesen Pin anschließend als digitalen Pull-Up-Eingang konfigurieren, zeigt die untenstehende Tabelle die Beziehung zwischen der Position des Schalters und den vom Arduino Nano ausgelesenen Werten:

DIP switch position Binary representation Circuit state Arduino Nano 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 Positionen, 3 Positionen, 5 Positionen, 6 Positionen, 8 Positionen und 10 Positionen anpassen.

Verdrahtungsdiagramm

Arduino Nano DIP-Schalter Verdrahtungsdiagramm

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

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

Arduino Nano Code - DIP-Schalter

Wir werden durch zwei Codebeispiele lernen:

  • Auslesen des Ein-/Aus-Zustands einzelner DIP-Schalter-Positionen.
  • Die Positionen in eine Zahl codieren.

Arduino Nano-Code – Lesen des Ein/Aus-Zustands des DIP-Schalters

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

  • Verdrahten Sie gemäß dem oben gezeigten Verdrahtungsdiagramm.
  • Verbinden Sie das Arduino Nano über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino IDE.
  • Wählen Sie das richtige Board und den richtigen Port aus.
  • Klicken Sie im Arduino IDE auf die Schaltfläche Upload, um den Code auf das Arduino Nano hochzuladen.
  • Schalten Sie nacheinander jede Position des DIP-Schalters auf ON.
  • Sehen Sie das Ergebnis im Serial 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 Nano Code - Kodierung der Zustände des DIP-Schalters in eine Zahl

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

  • Lade den oben gezeigten Code auf den Arduino Nano hoch.
  • Schalte nacheinander jede Stellung des DIP-Schalters auf EIN.
  • Siehe das Ergebnis im seriellen Monitor; es ist unten zu sehen.
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 der Position jedes Schiebeschalters abhängt. Die folgende Tabelle zeigt die Zuordnung zwischen ON/OFF-Positionen 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!