Arduino-Tutorial Teil 3: Taster als digitales Eingabegerät

fertiger Schaltplan

Dieses Tutorial zeigt, wie man einen einfachen Taster als Eingabegerät am Arduino nutzen kann, um damit beispielsweise die LED auf dem Arduino an- und auszuschalten.

Ein Taster ist eine spezielle Bauform eines elektrischen Schalters. Sein Alleinstellungsmerkmal ist, dass er nach dem Auslösen in den Standardzustand zurückkehrt. Dadurch werden beispielsweise Lampen nur dann angeschaltet, wenn der Taster gedrückt wird und nach dem Drücken sofort wieder ausgeschaltet. Es gibt Taster, die im nicht-gedrückten Zustand den Stromkreis unterbrechen, andere schließen den Stromkreis im nicht-gedrückten Zustand.

Folgende Materialien werden benötigt:

  • Arduino UNO
  • Taster
  • Widerstand 10kΩ
  • Breadboard (auch Steckplatine genannt)

Wenn man mit einem Arduino registrieren möchte, ob der Schalter offen oder geschlossen ist, muss man das digitale Eingangssignal am Einganspin auslesen.

Binärer WertZulässige Spannung
HIGH / true / 13,0V bis 5,5V
LOW / false / 0-0,5V bis 1,5V

Würde man einen Taster einfach mit GND und einem Pin verbinden, bekäme man unzuverlässige Ergebnisse. Das liegt daran, dass der PIN dann im offenen Zustand nicht verbunden wäre und es einen undefinierten Zustand gibt (floating), in dem der Arduino, nicht vorhersehbar, den Eingang als wahr oder falsch interpretiert. Dies liegt daran, da auf den Schalterkontakten und Drähten immer noch eine gewissen Anzahl an Elektronen sind, die der Arduino messen kann.

Mit einem sogenannten Pull-Up-Widerstand wird die Spannung am Eingangspin auf 5V hoch gezogen.

Achtung: Der große Widerstandswert von 10 kΩ ist wichtig, um die Platine vor hohen Strömen zu schützen.

Jetzt ist der Pin auf wahr, solange der Schalter geschlossen ist, wird er geöffnet fließt der Strom über den Pull-Up-Widerstand und den Schalter zu GND, der Eingangspin registriert nun 0V. Das floating-Problem ist gelöst.

Schaltplan für einen Taster mit Pullup-Widerstand

Mit einem Breadboard sieht die Schaltung folgendermaßen aus:

fertiger Schaltplan

Um die Einsatzmöglichkeiten eines Tasters zu demonstrieren, schaltet diese Beispiel die kleine LED (siehe Tutorial 1) auf der Platine.

Im setup()-Teil wird Pin 10 als Eingang konfiguriert; der Pin, der intern mit der Onboard-LED verbunden ist (bei Arduinos meist Pin 13), wird als Ausgang konfiguriert.
Im loop()-Abschnitt, der unendlich läuft, fragt der Code den Zustand am Pin 10 ab. Wenn dieser false ist, wird die LED angeschaltet. Durch die Pull-Up-Schaltung ist das immer dann der Fall, wenn der Schalter geschlossen ist. Andernfalls wird die LED ausgeschaltet. Dieser Prüfvorgang beginnt nach 10ms Pause von vorne.

Fenster der Arduino-IDE mit dem fertigen Code

Verständnisfrage: wie muss der Code verändert werden, damit die LED leuchtet, wenn der Taster nicht gedrückt wird?

Lösung einblenden

Hier noch der fertige Code zum Herunterladen: