#include const int LED_Pins[5] = {8,9,10,11,12}; const int Button_Pin = 7; unsigned long Start_Millis = 0; unsigned long Current_Millis = 0; unsigned long Blinkwartezeit = 1000; uint8_t start = 0; uint8_t step = 0; uint8_t step_max = 5; void handle_taster(void); void handle_lauflicht(void); void handle_timer(void); void setup() { Serial.begin(115200); pinMode(Button_Pin, INPUT_PULLUP); // Button an Pin 7, als Eingang (Pullups) schalten pinMode(LED_Pins[0], OUTPUT); // LEDs an den Pins 8-12 als Ausgang schalten pinMode(LED_Pins[1], OUTPUT); pinMode(LED_Pins[2], OUTPUT); pinMode(LED_Pins[3], OUTPUT); pinMode(LED_Pins[4], OUTPUT); Serial.println("Setup done."); } void loop() { // put your main code here, to run repeatedly: handle_taster(); handle_timer(); handle_lauflicht(); } void handle_taster(){ if(!digitalRead(Button_Pin)){ start = start^1; // toggled Varianble Serial.print("start = ");Serial.println(start); if(start) step=0; Serial.println("Button erkannt"); delay(500); // billiste Methode zum entprellen } } void handle_lauflicht(){ if(start){ // Start wird durch handle_taster() eingelesen if(step == 0){ // Steps werden durch handle_timer() erhöht digitalWrite(LED_Pins[4], LOW); digitalWrite(LED_Pins[0], HIGH); Serial.println(step); } else if(step == 1){ digitalWrite(LED_Pins[0], LOW); digitalWrite(LED_Pins[1], HIGH); Serial.println(step); } else if(step == 2){ digitalWrite(LED_Pins[1], LOW); digitalWrite(LED_Pins[2], HIGH); Serial.println(step); } else if(step == 3){ digitalWrite(LED_Pins[2], LOW); digitalWrite(LED_Pins[3], HIGH); Serial.println(step); } else if(step == 4){ digitalWrite(LED_Pins[3], LOW); digitalWrite(LED_Pins[4], HIGH); Serial.println(step); } else if(step == 5){ for(int i=0; i<5; i++){ digitalWrite(LED_Pins[i],LOW); } Serial.println(step); } }else{ for(int i=0; i<5; i++){ digitalWrite(LED_Pins[i],LOW); } } } void handle_timer(){ if(start){ if(millis()-Current_Millis >= Blinkwartezeit){ step++; if(step > step_max) step=0; Current_Millis = millis(); } } }