verschiedene Porgrammabschnitte mit Taster auswählen

Hallo!

Ich habe folgendes Problem:

Angeschlossen ans Arduino UNO 8 Leds, welche in unterschiedlichen Blitzmustern leuchten sollen, Mittels Taster möchte ich quasi von Programmabschnitt zu Programmabschnitt springen können.

Hier mein bisher Erarbeitetes: momentan läuft natürlich einfach alles der Reihe nach ab...

Die von mir gedachten Programmabschnitte sind getrennt durch "//--------------------" Hoffe mir kann Jemand helfen. Danke schon mal!

void setup () 

{
 pinMode (6,OUTPUT);
 pinMode (7,OUTPUT);
 pinMode (8,OUTPUT);
 pinMode (9,OUTPUT);
 pinMode (10,OUTPUT);
 pinMode (11,OUTPUT);
 pinMode (12,OUTPUT);
 pinMode (13,OUTPUT);    // ausgänge 8x Led 
}

void loop()     

{
digitalWrite(6, HIGH);             //blitz beginnt
digitalWrite(13, HIGH);            //EInfachblitz, synchron
delay(600);
digitalWrite(6, LOW);
digitalWrite(13, LOW);
delay(600);                         //blitz endet
digitalWrite(6, HIGH);             //blitz beginnt
digitalWrite(13, HIGH);            //EInfachblitz, synchron
delay(600);
digitalWrite(6, LOW);
digitalWrite(13, LOW);
delay(600);                         //blitz endet


//-------------------------------------------------------------------


digitalWrite(6,HIGH);            //blitz beginnt
digitalWrite(13,HIGH);           // Doppelblitz synchron
delay(200);
digitalWrite(6,LOW);
digitalWrite(13,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(13,HIGH);
delay(200);
digitalWrite(6,LOW);
digitalWrite(13,LOW);
delay(1000);                       //blitz endet
digitalWrite(6,HIGH);            //blitz beginnt
digitalWrite(13,HIGH);           // Doppelblitz synchron
delay(200);
digitalWrite(6,LOW);
digitalWrite(13,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(13,HIGH);
delay(200);
digitalWrite(6,LOW);
digitalWrite(13,LOW);
delay(1000);                       //blitz endet

//-------------------------------------------------------------------

digitalWrite(6,HIGH);            //blitz beginnt links                        
delay(200);                      // Doppelblitz wechsel
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(6,LOW);
delay(200);                       //blitz endet
                                     //blitz beginnt rechts
digitalWrite(13,HIGH);         
delay(200);
digitalWrite(13,LOW);
delay(100);
digitalWrite(13,HIGH);
delay(200);
digitalWrite(13,LOW);
delay(1000);                       //blitz endet
digitalWrite(6,HIGH);            //blitz beginnt links                        
delay(200);                      // Doppelblitz wechsel
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(6,LOW);
delay(200);                       //blitz endet                                
digitalWrite(13,HIGH);         //blitz beginnt rechts 
delay(200);
digitalWrite(13,LOW);
delay(100);
digitalWrite(13,HIGH);
delay(200);
digitalWrite(13,LOW);
delay(1000);                       //blitz endet

//-------------------------------------------------------------------------
// Lauflicht 


digitalWrite(7,HIGH);
delay(200);
digitalWrite(8,HIGH);
delay(200);
digitalWrite(9,HIGH);
delay(200);
digitalWrite(10,HIGH);
delay(200);
digitalWrite(11,HIGH);
delay(200);
digitalWrite(12,HIGH);
delay(200);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);

}
  1. Delays entfernen und die Strategie mit millis() nutzten. -> BlinkWithoutDelay
  2. Taster über Software entprellen -> Debounce
  3. Jeden Blink Modus in eine eigene Funktion, bzw. in einem case hinterlegen. -> Reference/SwitchCase