Schalter und Taster sind grundlegende Komponenten in der Elektronik und spielen eine wichtige Rolle in Arduino-Projekten. Sie ermöglichen die Interaktion zwischen dem Benutzer und dem System, indem sie dem Arduino-Board Signale liefern, die dann verarbeitet und umgesetzt werden können.
Hardware-Beispiel:
Druckschalter 12mm
Tastersortiment
2. Funktionsweise
2.1 Schalter:
- Ein Schalter hat zwei Zustände: Ein (geschlossen) und Aus (offen).
- Wenn der Schalter geschlossen ist, fließt Strom durch den Kreis.
- Wenn der Schalter offen ist, wird der Stromkreis unterbrochen.
- Schalter werden oft verwendet, um Geräte ein- und auszuschalten.
2.2 Taster:
- Ein Taster hat auch zwei Zustände: Ein (gedrückt) und Aus (nicht gedrückt).
- Wenn der Taster gedrückt wird, wird der Stromkreis geschlossen.
- Sobald der Taster losgelassen wird, öffnet sich der Stromkreis wieder.
- Taster werden häufig verwendet, um Aktionen auszulösen, z. B. eine Taste zu betätigen oder ein Signal zu senden.
3. Auswahl von Schaltern und Tastern für Arduino-Projekte
3.1 Faktoren zu beachten:
- Art des Schalters/Tasters: Drucktaster, Kippschalter, Schiebeschalter usw.
- Betätigungsart: Momentan (öffnet beim Loslassen) oder rastend (verbleibt in der gedrückten Position)
- Stromstärke: Maximale Stromstärke, die der Schalter/Taster verarbeiten kann
- Anzahl der Kontakte: Einpolige, zweipolige, mehrpolige Schalter/Taster
- Gehäusematerial: Kunststoff, Metall usw.
- Befestigungsart: Lötpunkte, Schraubklemmen usw.
3.2 Empfehlungen:
- Für einfache Projekte: Drucktaster oder Kippschalter mit 2 Anschlüssen
- Für höhere Stromstärken: Relais anstelle von Schaltern/Tastern verwenden
- Bei Verwendung von mehreren Schaltern/Tastern: Beschriftung verwenden, um die Verdrahtung zu erleichtern
4. Anschluss von Schaltern und Tastern an Arduino
4.1 Benötigte Materialien:
- Arduino-Board
- Schalter/Taster
- Jumperkabel oder Widerstände
- Steckbrett (optional)
4.2 Verdrahtung:
- Verbinde einen Anschluss des Schalters/Tasters mit einem digitalen Pin des Arduino-Boards.
- Verbinde den anderen Anschluss des Schalters/Tasters mit GND (Ground).
- Bei Tastern kann ein zusätzlicher Widerstand (z. B. 10 kΩ) zwischen dem Taster und GND angeschlossen werden, um Prellen zu vermeiden.
5. Programmierung von Schaltern und Tastern in Arduino
5.1 Beispielcode:
const int buttonPin = 2; // Definieren Sie den Pin, an dem der Taster angeschlossen ist
void setup() {
pinMode(buttonPin, INPUT); // Stellen Sie den Pin als Eingang ein
}
void loop() {
int buttonState = digitalRead(buttonPin); // Lesen Sie den Zustand des Tasters
if (buttonState == HIGH) {
// Taster gedrückt
// Aktion ausführen
Serial.println("Taster gedrückt!");
} else {
// Taster nicht gedrückt
// Keine Aktion
}
}
6. Prellen
Neben der grundlegenden Funktion, dem Arduino-Board Signale für die Interaktion zu liefern, kommt es bei der Verwendung von Schaltern und Tastern häufig zu einem Phänomen namens Prellen.
6.1 Was ist Prellen?
Prellen, auch Kontaktschwingung genannt, beschreibt das mehrfache Öffnen und Schließen des Kontaktes beim Betätigen eines Schalters oder Tasters. Dies resultiert aus der mechanischen Bewegung des Kontaktes und führt zu unerwünschten Signalen an den Arduino.
6.2. Auswirkungen von Prellen
Prellen kann verschiedene negative Auswirkungen auf Ihr Arduino-Projekt haben:
- Fehlinterpretation von Eingaben: Der Arduino kann den kurzen Prellzustand als mehrfache Betätigung interpretieren, was zu unerwünschten Aktionen führen kann.
- Instabiles Verhalten: Das Programm reagiert unvorhersehbar und springt zwischen verschiedenen Zuständen hin und her.
- Beschädigung des Arduino-Boards: In extremen Fällen kann starkes Prellen zu Überspannungen führen und den Arduino beschädigen.
6.3. Vermeidung von Prellen
Es gibt verschiedene Möglichkeiten, Prellen in Arduino-Projekten zu vermeiden:
6.4 Hardwareseitige Lösungen:
- Pull-Up-Widerstände: Ein Pull-Up-Widerstand zwischen dem Schalter/Taster und VCC (3,3V oder 5V) sorgt dafür, dass der Pin im Ruhezustand auf HIGH (logisch 1) steht und kurze Prellzustände minimiert werden.
- Entprellschaltung: Eine einfache RC-Entprellschaltung aus einem Widerstand und einem Kondensator kann Prellungen effektiv eliminieren.
- Debounce-Taster: Spezielle Taster mit integrierter Entprellschaltung bieten eine einfache und zuverlässige Lösung.
6.5 Softwareseitige Lösungen:
- Software-Entprellung: Durch geschickte Programmierung kann der Arduino Prellungen selbst erkennen und ignorieren. Verschiedene Bibliotheken wie „Bounce“ oder „Debounce“ vereinfachen diesen Prozess.
6.6. Auswahl der geeigneten Methode
Die Wahl der Methode zur Vermeidung von Prellen hängt von verschiedenen Faktoren ab:
- Komplexität des Projekts: Bei einfachen Projekten reicht oft ein Pull-Up-Widerstand.
- Genauigkeit: Für präzise Messungen oder zeitkritische Anwendungen sind Hardware- oder Software-Entprellungen besser geeignet.
- Elektronische Kenntnisse: Software-Entprellung erfordert Programmierkenntnisse, während Hardwarelösungen einfacher zu implementieren sind.
Fazit
Schalter und Taster sind vielseitige Komponenten, die in einer Vielzahl von Arduino-Projekten eingesetzt werden können. Mit dem richtigen Wissen und ein wenig Übung kann man diese Komponenten gut nutzen, um interaktive und funktionale Projekte zu erstellen. Durch die richtige Auswahl und Anwendung zur Vermeidung des Prellens, können somit Projekt stabiler, zuverlässiger und benutzerfreundlicher werden.
Analoge Taster Lösung:
Dieses analoge Tasterboard muss mit 5 Volt versorgt werden und kann dann je nach gedrückten Switch am analogen Anschluss Werte zwischen 0 und 1023 zurück liefern.
#include "Wire.h"
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
int Analogwert = analogRead(A0);
Serial.println(Analogwert);
delay(200);
}
Rückgabewerte der einzelnen Taster im Seriellen Monitor:
SW1 = 0, SW2 = 142, SW3 = 324, SW4 = 502 und SW5 = 735
Keine Aktion = 1020
Auslöser bei vorangestellter Distanz Überschreitung:
Dieser namenlose Infrarot Abstand Sensor mit Potentiometer kann auch als Taster eingesetzt werden. Er hat drei Anschlüsse, VCC,GND und out und kann mit 3 bis 5 Volt betrieben werden.
Ein simpler Sensor der bei mir fest einstellbar zwischen 5 cm und 16 cm erkennt und dann am digitalen Ausgang „out“ zwischen 3 bis 5 Volt, je nach Eingangs Spannung, fast auf Null zieht.
Daher bei diesem Versuchsaufbau, den Arduino nur zur Spannungsversorgung verwendet. LED am Pin out, zeigt wie der Strom aus bleibt. Könnte daher zum Beispiel ohne Code ein Relay steuern.