Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:arduino:lauflicht_ueber_taster [2020/02/07 15:18]
m.lange
faecher:informatik:arduino:lauflicht_ueber_taster [2020/02/07 15:50] (aktuell)
m.lange
Zeile 1: Zeile 1:
 ====== Lauflicht über Taster ====== ====== Lauflicht über Taster ======
 +{{:​faecher:​informatik:​arduino:​lauflicht-mit-taster2.png?​600|}}
  
 +Das folgende Programm soll die einzelnen LEDs nach und nach auf Tastendruck einschalten.
 <code c> <code c>
 int aktuell; // hier drin wird der Pin der LED gespeichert,​ die gerade an sein soll int aktuell; // hier drin wird der Pin der LED gespeichert,​ die gerade an sein soll
Zeile 24: Zeile 26:
     }     }
     digitalWrite(aktuell,​ HIGH); // naechste LED einschalten     digitalWrite(aktuell,​ HIGH); // naechste LED einschalten
 +    // Marke 2
   }   }
-  // Marke fuer spaeter+  // Marke fuer spaeter
 } }
  
 </​code>​ </​code>​
 +Das Programm funktiniert noch nicht wie gewollt, die LEDs leuchten alle (wie genau?) und wenn man den Taster los lässt, leuchtet eine zufällige LED.
 +
 +Um den Fehler aufzuspüren baut man nach der "​**Marke 1**" ein:
 +
 +<code c>
 +delay(100);
 +</​code>​
 +
 +Man sieht nun, was passiert, in schneller Folge werden die LEDs geschaltet. Was ist der Fehler?
 +
 +Die Zeile "**if (!digitalRead(2)) {**" fragt nur ab, ob ein Taster gedrückt ist, nicht ob er wieder losgelassen wurde.
 +
 +Also bauen wir ein warten bis der Taster wieder losgelassen wurde ein. Nach "​**Marke 2**":
 +<code c>
 +while( !digitalRead(2) ){delay(10);​}
 +</​code>​
 +Diese Zeile wird so lange aufgeführt,​ bis der Taster wieder losgelassen wurde.