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_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>​