Metainformationen zur Seite
Dies ist eine alte Version des Dokuments!
Wie man auf einen Tastendruck reagiert
Was du schon weißt
- Wie man eine LED an den Arduino anschließt und einen Widestand verwendet.
- Wie man einen Quelltext bzw. ein Programm auf den Arduino hochlädt.
Wie geht's weiter?
Um zu demonstrieren, wie man auf einen Tastendruck reagieren kann, brauchen wir einen Aufbau, der sowohl einen Taster als auch ein Objekt beinhält, mit dem man die Reaktion sichtbar machen kann. Wir wollen dazu den Aufbau mit der Leuchtdiode erweitern:
Ein pssendes Programm wäre:
void setup() { pinMode(3, OUTPUT); pinMode(2, INPUT_PULLUP); } void loop() { if(!digitalRead(2)) { digitalWrite(3, HIGH); delay(500); } }
Die Zeile
pinMode(2, INPUT_PULLUP);
im setup-Teil teilt dem Arduino mit, dass er am Kontakt D2 erwarten soll, dass dort Strom in den Arduino fließt.
Die Zeilen
if(!digitalRead(2)) { digitalWrite(3, HIGH); delay(500); }
im loop-Teil veranlassen den Arduino zu prüfen, ob Strom einfließt über den Kontakt D2. Falls ja, schaltet der Arduino die Leuchtdiode ein.
Problem: Der Arduino schaltet die Leuchtdiode zwar ein, aber nicht wieder aus!
Um das leisten zu können, müsste sich der Arduino „merken“, ob die Leuchtdiode schon eingeschaltet ist oder nicht. Dazu verwenden wir eine Merkvariable, die nur zwei Werte speichern kann: wahr bzw. falsch, oder gleichwertig: ein bzw. aus. Der Wert wahr lautet auf englisch true und ist mit HIGH gleichwertig. Der Wert falsch lautet auf englisch false und ist mit LOW gleichwertig.
Damit sollte der Quelltext wie folgt aussehen:
boolean status; void setup() { pinMode(3, OUTPUT); pinMode(2, INPUT_PULLUP); digitalWrite(3, LOW); status = false; } void loop() { if(!digitalRead(2)) { status=!status; digitalWrite(3, status); delay(500); } }