Taster am Mikroconroller, das musst du wissen!

Das ist zu beachten bei der Verwendung von Taster

Es klingt sehr einfach einen Taster an einem Mikrocontroller anzuschliessen, aber es gibt hierbei einiges zu beachten, wenn man es richtig machen möchte. Diese Verbesserungen können auf alle mechanische Schalter und Taster angewendet werden, wie ein Tür oder Fensterkontakt.
Pull-up oder Pull-down Widerstände verwenden, um sicherzustellen, dass der Eingang auf einem bekannten Zustand gesetzt wird, wenn der Taster nicht gedrückt ist.
Taster Entprellen oder auch Debouncing genannt, dass Sicherstellt, dass nur eine einzige stabile Impulsflanke erzeugt wird.
Zu guter Letzt möchten wir noch feststellen, ob der Taster kurz oder lang gedrückt wird und darauf entsprechen reagieren. Gehen wir jetzt die einzelnen Punkte der Reihe nach durch.

Wenn ihr mehr über Pull-up und Pull-down Widerstände erfahren wollt, dann schaut hier vorbei.

Aufbau von mechanischen Taster

Die grundlegende Funktionsweise eines mechanischen Tasters beruht darauf, dass eine Feder eine bewegliche Kontaktkappe gegen einen feststehenden Kontakt drückt, um den Stromkreis zu schließen. Mechanische Taster gibt es in vielen verschiedenen Ausführungen und Größen, von winzigen Mikrotastern bis zu großen Industrieschaltern. Der grundlegende Aufbau bleibt jedoch in der Regel ähnlich, unabhängig von der Größe oder Form des Tasters.
Für unsere Mikrocontroller Projekte werden meist die tactile Buttons verwendet, die vier Anschlüsse haben. Damit haben wir vier Möglichkeiten den Taster anzuschliessen, zwei davon sind gespiegelt.

Das Taster rauschen

Das Rauschen an einem Taster entsteht aufgrund von elektromagnetischen Interferenzen (EMI), die durch benachbarte elektronische Komponenten oder Umgebungsbedingungen verursacht werden können.
Lasst uns jetzt ein praktisches Beispiel machen, in dem wir den Taster direkt an einem Eingang von unseren Arduino UNO hängen. Dadurch können wir den unerwünschten Effekt vom Taster rauschen sehen. Im Serial Monitor werden jetzt 0 aber auch 1 ausgegeben und jede 1 ist ein falscher Eingang der eine Funktion auslösen würde die nicht gewünscht ist.

				
					const byte buttonPin = 5;

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT); 
}

void loop() {
  Serial.println(digitalRead(buttonPin));
}
				
			

Hardware Lösung

Abhilfe für dieses Problem schafft hier ein Pull-up oder Pull-down Widerstand, der den Eingang bei einem Pull-up Widerstand auf HIGH setzt und bei einem Pull-down Widerstand auf LOW.

Taster rauschen Pull-up Widerstand

Software Lösung

Taster rauschen Software Lösung
				
					const byte buttonPin = 5; //D1

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT_PULLUP); 
}

void loop() {
  Serial.println(digitalRead(buttonPin));
}
				
			

Den Taster entprellen

Taster haben die Eigenschaft, nicht direkt in den nächsten Zustand zu schalten, sondern neigen dazu, ein paar mal hin- und her zu schalten, was auch bouncing genannt wird. Dieses Prellen dauert in der Regel nur sehr kurz, ca. 2–5 Millisekunden, das ist jedoch von vielen Faktoren abhängig und kann stark variieren. Ist die Umgebung staubig oder die Taster älter und verschmutzt, ist man mit 30 Millisekunden dennoch in einem praxisnahen Wert gut abgedeckt. Jeder Prellvorgang kann vom Mikrocontroller durch seine hohe Geschwindigkeit als Tastendruck interpretiert werden.

				
					#include <Bounce2.h> //Bounce2 von Thomas O Fredericks V2.71
const byte buttonPin = 5; //D1
Bounce2::Button button = Bounce2::Button();

void setup() {
  Serial.begin(115200);
  button.attach(buttonPin, INPUT_PULLUP);
  button.interval(30); // 30 ms zum Entprellen
  button.setPressedState(LOW);  // Input = LOW bei gedrückten Taster
}

void loop() {
  button.update();  // Bounce Instance update
  if ( button.pressed() ) {
    Serial.println("Taster ist gedrückt");
  }
}
				
			

Zum Video

★☆★ Wenn ihr den Kanal unterstützen wollt über ★☆★

oder über

Twint Spenden Code