int rot_pkw = 5;
int gelb_pkw = 6;
int gruen_pkw =7;
int rot_f = 8;
int gruen_f = 9;
int taster_f = 4;
int interval1 = 5000;
int interval2 = 1000;
int interval3 = 4000;
int interval4 = 1000;
int interval5 = 10000;
int zustand = 0;
unsigned long previousMillis = 0;
bool tasterstate = false;
void setup () {
for(int i =5; i >= 9; i++){
pinMode(i, OUTPUT);
}
pinMode (taster_f, INPUT_PULLUP);
digitalWrite(gruen_pkw, HIGH);
digitalWrite(rot_f, HIGH);
}
void loop () {
unsigned long currentMillis = millis();
bool taster_zustand = digitalRead(taster_f);
if(taster_zustand == 0){
tasterstate = true;
}
if(zustand == 0 && currentMillis - previousMillis >= interval1) {
previousMillis = currentMillis;
digitalWrite(gruen_pkw, LOW);
digitalWrite(gelb_pkw, HIGH);
zustand = 1;
}
if(zustand == 1 && currentMillis - previousMillis >= interval2){
previousMillis = currentMillis;
digitalWrite(gelb_pkw, LOW);
digitalWrite(rot_pkw, HIGH);
zustand = 2;
}
if (zustand == 2 && currentMillis - previousMillis >= interval3){
previousMillis = currentMillis;
if(tasterstate){
digitalWrite(rot_f, LOW);
digitalWrite(gruen_f, HIGH);
tasterstate = false;
zustand = 4;
}
else{
digitalWrite(gelb_pkw, HIGH);
zustand = 3;
}
}
if (zustand == 4 && currentMillis - previousMillis >= interval5){
previousMillis = currentMillis;
digitalWrite(gruen_f, LOW);
digitalWrite(rot_f, HIGH);
digitalWrite(gelb_pkw, HIGH);
zustand = 3;
}
if(zustand == 3 && currentMillis - previousMillis >= interval4){
previousMillis = currentMillis;
digitalWrite(rot_pkw, LOW);
digitalWrite(gelb_pkw, LOW);
digitalWrite(gruen_pkw, HIGH);
zustand = 0;
}
/*
digitalWrite (gruen_pkw, HIGH);
delay (5000);
digitalWrite (gruen_pkw, LOW);
digitalWrite(gelb_pkw, HIGH);
delay(1000);
digitalWrite(gelb_pkw, LOW);
digitalWrite(rot_pkw, HIGH);
delay (4000);
digitalWrite(gelb_pkw, HIGH);
delay (1000);
digitalWrite(rot_pkw, LOW);
digitalWrite(gelb_pkw, LOW);
*/
}