Mit einem Schalter eine LED-Reihenfolge Programieren

Ja.

Nochmal drüber nachdenken.

Vielen Dank damit funktioniert es jetzt einwandfrei!

Am Anfang war ich vom Ganzen Code noch relativ verwirrt, aber ich hab mir jetzt meinen eigenen geschrieben. Klar es geht einfacher aber so wie ich ihn jetzt geschrieben habe Verstehe ich ihn und er funktioniert auch so.

Für Interessen hier mein Finaler Code:

void setup() {
  //Alle Outputs
  pinMode(13, OUTPUT); // Pin 14 auf der Platine
  pinMode(12, OUTPUT); // Pin 1 auf der Platine
  pinMode(11, OUTPUT); // Pin 2 auf der Platine
  pinMode(10, OUTPUT); // Pin 3 auf der Platine
  pinMode(9, OUTPUT);  // Pin 4 auf der Platine
  pinMode(8, OUTPUT);  // Pin 5 auf der Platine
  pinMode(7, OUTPUT);  // Pin 6 auf der Platine
  pinMode(6, OUTPUT);  // Pin 7 auf der Platine
  pinMode(5, OUTPUT);  // Pin 8 auf der Platine
  pinMode(4, OUTPUT);  // Pin 9, 10, 11 auf der Platine
  pinMode(3, OUTPUT);  // Pin 13 auf der Platine
  pinMode(2, OUTPUT);  // Pin 12 auf der Platine
  pinMode(A0, OUTPUT); // Pin 15 auf der Platine
  pinMode(A1, OUTPUT); // Pin 16 auf der Platine
  pinMode(A4, OUTPUT); // Pin 17 auf der Platine
  pinMode(A5, OUTPUT); // Pin 18 auf der Platine
                       // Pin 19 und 20 sind nicht besetzt

  //Alle Inputs
  pinMode(A2, INPUT);  //Input vom LDR
  pinMode(A3, INPUT);  //Input von S2
  pinMode(A6, INPUT);  //Input von S3
  pinMode(A7, INPUT);  //Input von S4
}

void loop() {

  if (digitalRead(A3) == LOW)      // Wenn S2 betätigt ist 
  {
    ErsteReihenfolge(); 
  }

else if (analogRead( A6) < 512)   // Wenn S3 betätigt ist 
  {
    ZweiteReihenfolge();
  }

else if (analogRead(A7) < 512)    // Wenn S4 betätigt ist 
  {
    DritteReihenfolge();
  }
}

void ErsteReihenfolge() //Blinkt von Links nach Rechts
{
  digitalWrite(12, HIGH);
  delay(50);
  digitalWrite(12, LOW);
  delay(50);
  digitalWrite(11, HIGH);
  delay(50);
  digitalWrite(11, LOW);
  delay(50);
  digitalWrite(10, HIGH);
  delay(50);
  digitalWrite(10, LOW);
  delay(50);
  digitalWrite(9, HIGH);
  delay(50);
  digitalWrite(9, LOW);
  delay(50);
  digitalWrite(8, HIGH);
  delay(50);
  digitalWrite(8, LOW);
  delay(50);
  digitalWrite(7, HIGH);
  delay(50);
  digitalWrite(7, LOW);
  delay(50);
  digitalWrite(6, HIGH);
  delay(50);
  digitalWrite(6, LOW);
  delay(50);
  digitalWrite(5, HIGH);
  delay(50);
  digitalWrite(5, LOW);
  delay(50);
  digitalWrite(4, HIGH);
  delay(50);
  digitalWrite(4, LOW);
  delay(50); 
           
}
void ZweiteReihenfolge () //Blinkt von Rechts nach Links 
{
  digitalWrite(4, HIGH);
  delay(50);
  digitalWrite(4, LOW);
  delay(50);
  digitalWrite(5, HIGH);
  delay(50);
  digitalWrite(5, LOW);
  delay(50); 
  digitalWrite(6, HIGH);
  delay(50);
  digitalWrite(6, LOW);
  delay(50); 
  digitalWrite(7, HIGH);
  delay(50);
  digitalWrite(7, LOW);
  delay(50);
  digitalWrite(8, HIGH);
  delay(50);
  digitalWrite(8, LOW);
  delay(50);
  digitalWrite(9, HIGH);
  delay(50);
  digitalWrite(9, LOW);
  delay(50);
  digitalWrite(10, HIGH);
  delay(50);
  digitalWrite(10, LOW);
  delay(50);
  digitalWrite(11, HIGH);
  delay(50);
  digitalWrite(11, LOW);
  delay(50);
  digitalWrite(12, HIGH);
  delay(50);
  digitalWrite(12, LOW);
  delay(50);
}
void DritteReihenfolge () //Blinkt von Links nach Rechts und wieder nach Links
{
  digitalWrite(12, HIGH);
  delay(50);
  digitalWrite(12, LOW);
  delay(50);
  digitalWrite(11, HIGH);
  delay(50);
  digitalWrite(11, LOW);
  delay(50);
  digitalWrite(10, HIGH);
  delay(50);
  digitalWrite(10, LOW);
  delay(50);
  digitalWrite(9, HIGH);
  delay(50);
  digitalWrite(9, LOW);
  delay(50);
  digitalWrite(8, HIGH);
  delay(50);
  digitalWrite(8, LOW);
  delay(50);
  digitalWrite(7, HIGH);
  delay(50);
  digitalWrite(7, LOW);
  delay(50);
  digitalWrite(6, HIGH);
  delay(50);
  digitalWrite(6, LOW);
  delay(50);
  digitalWrite(5, HIGH);
  delay(50);
  digitalWrite(5, LOW);
  delay(50);
  digitalWrite(4, HIGH);
  delay(50);
  digitalWrite(4, LOW);
  delay(50); 
   digitalWrite(5, HIGH);
  delay(50);
  digitalWrite(5, LOW);
  delay(50); 
  digitalWrite(6, HIGH);
  delay(50);
  digitalWrite(6, LOW);
  delay(50); 
  digitalWrite(7, HIGH);
  delay(50);
  digitalWrite(7, LOW);
  delay(50);
  digitalWrite(8, HIGH);
  delay(50);
  digitalWrite(8, LOW);
  delay(50);
  digitalWrite(9, HIGH);
  delay(50);
  digitalWrite(9, LOW);
  delay(50);
  digitalWrite(10, HIGH);
  delay(50);
  digitalWrite(10, LOW);
  delay(50);
  digitalWrite(11, HIGH);
  delay(50);
  digitalWrite(11, LOW);
  delay(50);
}
1 Like