Taster - per Knopfdruck zum Ziel

Erstellt von Niclas Lüth
Benötigtes Vorwissen
Benötigtes Material
  • Arduino Uno
  • USB-Kabel für den Arduino
  • Taster
  • LED
  • Breadboard
  • 5x MW-Kabel
  • 2x 1k Ohm Widerstand
  • Batterie
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

Beschreibung

Was ist ein Taster?

So wird ein drückbarer Knopf in Fachkreisen genannt.

Der Arduino kann an seinen digitalen Pins nicht nur Spannungen (Strom) ausgeben, um z.B. einen Motor anzuschalten. Er kann auch Spannungen (Daten) einlesen, wie z.B beim Ultraschallsensor. Dieses Mal wollen wir mithilfe eines Tasters eine LED zum Leuchten bringen.

Bei dem Aufbau gibt es dieses Mal eine Besonderheit. Verbindet man den Taster ganz einfach mit dem Arduino und drückt den Taster, dann liegt am Pin des Arduinos eine Spannung an. Die Spannung kann aber nicht so schnell wieder entweichen, sodass unser Arduino denkt, wir halten den Taster für viele Sekunden gedrückt. Das wollen wir natürlich nicht! Um das zu verhindern und so schnell wie möglich klicken zu dürfen, brauchen wir einen Widerstand mit 1000 Ohm (1 K Ohm).

Physik: Widerstände

Man kann sich das so vorstellen, als würden an dem besagten Pin ganz viele Elektronen herumschwirren. Wenn der Taster dann losgelassen wird, kommen keine neuen Elektronen mehr zu dem Pin am Arduino hinzu. Jetzt kommt der Knackpunkt. Die Elektronen, die es sich vorher auf dem Pin gemütlich gemacht haben, sind dann immer noch da und entweichen nur ganz langsam über kleine Kriechströme. Solange sich noch Elektronen auf dem Pin aufhalten, denkt der Arduino, dass der Taster nicht nur kurz sondern ganz lange gedrückt wird. Durch einen Widerstand können die Elektronen deutlich schneller abfließen. Der Arduino erkennt folglich, dass der Taster nur kurz gedrückt wurde. Da der Widerstand die Spannung an dem Eingangspin immer auf 0V „herunterzieht“, wird er auch als „PULLDOWN-“ Widerstand bezeichnet.

ACHTUNG: Wenn man einen zu kleinen Widerstand verwendet, kann beim Drücken des Tasters ein Kurzschluss auf dem Mikrocontroller entstehen.

Verkabelung

Schaltplan

Schaltplan

Code

Wir wollen den Arduino dazu bringen, dass er jedes Mal die LED leuchten lässt, wenn wir den Taster drücken. Damit wir richtig schnell drücken können, lassen wir die LED nur ganz kurz (1/10 Sekunde) aufleuchten.

int LED          = 6;
int taster       = 7;
int tasterStatus = 0;

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(taster, INPUT);
}

void loop() {
  tasterStatus = digitalRead(taster);
  if (tasterStatus == HIGH) {  // wird der Knopf gedrückt, passiert Folgendes:
    digitalWrite(LED, HIGH);   // LED wird angeschaltet
    delay(100);                // LED leuchtet für eine Zehntel Sekunde
    digitalWrite(LED, LOW);    // LED wir ausgeschaltet
  } else {                     // sonst :
    digitalWrite(LED, LOW);    // LED wird ausgeschaltet / bleibt ausgeschaltet
  }
}

Aufgaben

Beschreibe, was der Code tut!

Die Pins für die LED, den Taster und den Tasterstatus werden gesetzt und im Setup die LED als Output und der Taster als Input festgelegt. In der loop wird der Tasterstatus gelesen, wenn er einmal gedrückt wurde soll die LED leuchten, ansonsten bleibt sie aus oder wird ausgeschaltet, da der wiederholt gedrückte Taster als Auschaltoperation verstanden wird.

Baut den dargestellten Aufbau einmal nach, lasst die LED aber durchgehend leuchten bis man sie wieder mit dem Taster auschaltet.

Die Zeilen 14 + 15 dafür entfernen.

Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )