Taster - per Knopfdruck zum Ziel

Erstellt von Niclas Lüth
Benötigtes Vorwissen
Benötigtes Material
  • LED
  • Taster
  • Breadboard
  • Arduino Uno
  • USB-Kabel für den Arduino
  • 5x MW-Kabel
  • 2x 1k Ohm Widerstand
  • Batterie
Benötigte Software
  • Arduino IDE
Als PDF
PDF-Download
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/Aufbau

Schaltplan

Schaltplan

Code/Beispiel

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
  }
}

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 )