Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| 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 1 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. | ||