Einen Taster am Arduino anschließen und auslesen ist relativ einfach, doch es gibt ein paar Dinge zu beachten.

In der Abbildung ist ein Taster direkt mit dem Arduino verbunden. Diese Schaltung funktioniert leider so nicht. Solange der Taster nicht gedrückt ist, liegt am Pin 8 kein definiertes Signal an. Man sagt auch, es rauscht.

Um dieses Rauschen zu unterdrücken kann man einen Pull-Up-Widerstand verwenden. Er sorgt dafür, dass das Rauschen abgeleitet wird und somit ein sauberes Signal anliegt, auch wenn der Taster nicht gedrückt ist.

Leider sorgt das für einen zusätzlichen Bauteil- und Verdrahtungsaufwand. Deshalb sind im Microcontroller des Arduino-Boards bereits interne Pull-Up-Widerstände integriert. Sie lassen sich sehr einfach in der Pindeklaration hinzuschalten.
pinMode(8, INPUT_PULLUP);
Ein Beispiel-Programm, dass bei drücken des Tasters eine LED einschaltet, könnte so aussehen:
Code
const int ledPin = 13;
const int buttonPin = 8;
void setup() {
pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT);
}
void loop() {
if (digitalRead(buttonPin)==LOW){
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
delay(10);
}
Entprellen (Software)
Taster haben die Eigenschaft, nicht direkt in den nächsten Zustand zu schalten, sondern neigen dazu, ein paar mal hin- und herzuschalten (bouncing). In der Grafik wird dieses Verhalten verdeutlicht.
Abhilfe schaffen entweder hardwareseitige Entprellschaltungen (debouncing) oder softwareseitige Lösungen.
Eine softwareseitige Lösung für das Bouncing-Problem ist die bounce.h-Bibliothek. Sie ermöglicht es, die Prellzeit des Tasters zu ignorieren.

Codebeispiel
#include <Bounce2.h>
const int ledPin = 13;
const int buttonPin = 8;
Bounce myButton = Bounce();
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
myButton.attach(buttonPin);
myButton.interval(5); // 5ms zum Entprellen
}
void loop() {
myButton.update();
if (myButton.fallingEdge()) {
digitalWrite(ledPin, HIGH);
}
if (myButton.risingEdge()) {
digitalWrite(ledPin, LOW);
}
delay(10);
}
a
Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book an!
Darin findest du die beliebtesten Arduino-Projekte von StartHardware. Jedes Projekt umfasst Schaltplan, Bauteile, Beschreibung und Code. Für Einsteiger gibt es ein Arduino-Schnellstart-Kapitel und einen kompakten Programmierkurs. Zusätzlich findest du Zwischenkapitel mit Expertenwissen zu den Komponenten, die verwendet werden. Alle Code-Beispiele gibt es natürlich als Download.
Weitere Informationen findest du auf der Produktseite. Klicke jetzt auf den Button, um Details anzusehen.
Ein Kommentar zu “Arduino und Taster”