Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| faecher:informatik:arduino:lauflicht_ueber_taster2 [2020/02/07 16:24] m.lange angelegt | faecher:informatik:arduino:lauflicht_ueber_taster2 [2020/02/07 17:09] (aktuell) m.lange | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| Letzt kann man LEDs vorwärts und rückwerts laufen lassen. Hierzu ist ein kleiner Umbau erforderlich. **Bitte schaut genau hin!** | Letzt kann man LEDs vorwärts und rückwerts laufen lassen. Hierzu ist ein kleiner Umbau erforderlich. **Bitte schaut genau hin!** | ||
| - | {{:faecher:informatik:arduino:lauflicht-mit-taster3.png?600|}} | + | {{:faecher:informatik:arduino:lauflicht-mit-taster3b.png?600|}} | 
| <code c> | <code c> | ||
| Zeile 34: | Zeile 34: | ||
| aktuell = aktuell - 1; | aktuell = aktuell - 1; | ||
| if (aktuell == 1) { // An Pin 6 ist keine LED mehr, also wieder von vorne | if (aktuell == 1) { // An Pin 6 ist keine LED mehr, also wieder von vorne | ||
| - | aktuell = 4;https://ratsgymnasium-pe.de/ratsewiki/doku.php?id=faecher:informatik:arduino:lauflicht_ueber_taster | + | aktuell = 4; | 
| } | } | ||
| digitalWrite(aktuell, HIGH); // naechste LED einschalten | digitalWrite(aktuell, HIGH); // naechste LED einschalten | ||
| Zeile 45: | Zeile 45: | ||
| Auch dieses Programm läuft nicht ganz wie gehofft, wenn ein Taster gedrück ist, ist der andere Taster blockiert. Die while-Schleifen "halten den Programmablauf gefangen". | Auch dieses Programm läuft nicht ganz wie gehofft, wenn ein Taster gedrück ist, ist der andere Taster blockiert. Die while-Schleifen "halten den Programmablauf gefangen". | ||
| + | <code c> | ||
| + | int aktuell; // hier drin wird der Pin der LED gespeichert, die gerade an sein soll | ||
| + | int zustand1 = 0; | ||
| + | int zustand2 = 0; | ||
| + | void setup() { | ||
| + | pinMode(11, INPUT_PULLUP); // Eingang | ||
| + | pinMode(12, INPUT_PULLUP); // Eingang | ||
| + | pinMode(2, OUTPUT); // 3 Ausgänge für die LED | ||
| + | pinMode(3, OUTPUT); | ||
| + | pinMode(4, OUTPUT); | ||
| + | digitalWrite(2, LOW); | ||
| + | digitalWrite(3, LOW); | ||
| + | digitalWrite(4, LOW); | ||
| + |  | ||
| + | aktuell = 3; | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | if (!digitalRead(11)) { | ||
| + | zustand1 = 1; // Taster 1 wurde gedrueckt | ||
| + | } | ||
| + | if (digitalRead(11) && zustand1==1) { | ||
| + | digitalWrite(aktuell, LOW); // Aktuell leuchtende LED ausschalten | ||
| + | zustand1 = 0; // Das Loslassen wurde verarbeitet | ||
| + | aktuell = aktuell + 1; | ||
| + | if (aktuell == 5) { // An Pin 6 ist keine LED mehr, also wieder von vorne | ||
| + | aktuell = 2; | ||
| + | } | ||
| + | digitalWrite(aktuell, HIGH); // naechste LED einschalten | ||
| + | } | ||
| + | |||
| + | |||
| + | if (!digitalRead(12)) { | ||
| + | zustand2 = 1; | ||
| + | } | ||
| + | if (digitalRead(12) && zustand2==1) { | ||
| + | digitalWrite(aktuell, LOW); | ||
| + | zustand2 = 0; | ||
| + | aktuell = aktuell - 1; | ||
| + | if (aktuell == 1) { | ||
| + | aktuell = 4; | ||
| + | } | ||
| + | digitalWrite(aktuell, HIGH); // naechste LED einschalten | ||
| + | } | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | </code> | ||