Arduino Taster/Digitale Eingaben

Arduino Taster/Digitale Eingaben Titelbild

Folgende Teile braucht ihr für die Anleitung

Arduino Mini Starterkit Produktbild

Arduino Mini Starterkit | 21.95€

Arduino Starterkit Produktbild

Arduino Starterkit | 49.95€

5.5 Eingaben auslesen


Schleifen sind natürlich nicht nur dafür da, um deine Schuhe fest an deinen Füßen zu halten und um irgendwelche LEDs wieder und immer wieder blinken zu lassen. Hast du dich zum Beispiel mal gefragt, wie deine PC-Maus funktioniert?

Das Betriebssystem prüft zu jeder Zeit, ob du die Maus bewegst oder ob du eine Maustaste anklickst. Und wie wir gelernt haben, ist die beste Lösung für eine immer wiederkehrende Überprüfung eine Schleife.

In diesem Kapitel beschäftigen wir uns mit den Taster. Genau wie eine PC-Maus muss natürlich auch ein Knopf immer wieder überprüfen, ob er gedrückt wurde. Und so grüßt täglich die void loop()-Schleife.

show
Anschlüsse Arduino Anschlüsse am Breadboard
GND Kurzes Bein LED
13 Langes Bein LED
5V Obere Seite Taster
GND + 10kOhm Widerstand Untere Seite Taster
2 Untere Seite Taster
int taster = 2;
int led =  13;

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

void loop(){
  if (digitalRead(taster) == HIGH) {     
    digitalWrite(led, HIGH);  
  } 
  else {
    digitalWrite(led, LOW); 
  }
}

Die erste neue Angelegenheit findest du in Zeile 6. In diesem Fall muss der Pin nämlich mehr leisten, als einfach nur Strom zu liefern. Der Pin muss in dieser Situation nämlich prüfen, ob der Knopf gedrückt ist oder eben nicht. Bis jetzt hatten wir immer die Funktion pinMode(pin, OUTPUT);. Damit haben wir dem Arduino gesagt, dass wir mit dem angegebenen Pin Strom ausgeben wollen. Doch wenn INPUT angegeben wird, bewirkt es auch das Gegenteil. Jetzt misst der Pin, ob Strom fließt oder nicht. Das brauchen wir auch für den Taster. Ist der Taster gedrückt, hat der Pin den Zahlenwert 1 oder HIGH zugewiesen. Ist er nicht gedrückt, den Zahlenwert 0 oder LOW.

In Zeile 10 sehen wir zum ersten Mal eine if-Bedingung in Action. Mit der Funktion digitalRead(pin) bekommen wir den momentanen Status, ob der Taster gedrückt wurde oder nicht. Dazu vergleichen wir den Rückgabewert mit HIGH. Wenn der Taster HIGH ist und gedrückt wurde, fließt in Zeile 11 der Strom zur LED und diese fängt dann an, zu leuchten. In Zeile 13 lernen wir eine Erweiterung der if-Bedingung kennen. Diese lässt sich so übersetzen:

Wenn alle vorherigen if-Bedingungen nicht wahr sind, dann führe alles aus, was zwischen den geschweiften Klammern steht. 'Else' könnten wir auch mit 'andernfalls' übersetzen.

Da in diesem Programm keine delay()-Funktion vorkommt, wartet das Programm nicht, sondern fängt wieder am Anfang der loop()-Schleife an und dann geht alles wieder von vorne los.

Sehr cool! Den Taster beherrscht du!

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!