Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:arduino:lauflicht_ueber_taster [2020/02/07 15:17]
m.lange angelegt
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|}}
  
-<​code>​+Das folgende Programm soll die einzelnen LEDs nach und nach auf Tastendruck einschalten. 
 +<​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
 void setup() { void setup() {
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.