#define S0 0 // F1
#define S1 1 // F2
#define S2 2 // Start
#define S3 3 // Stop
#define M1 8 // Netz
#define M2 9 // Stern
#define M3 10 // Dreieck
bool S0x,S1x,S2x,S3x,Flag;
unsigned long startwert;
void setup() {
pinMode(S0, INPUT_PULLUP);
pinMode(S1, INPUT_PULLUP);
pinMode(S2, INPUT_PULLUP);
pinMode(S3, INPUT_PULLUP);
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(M3, OUTPUT);
}
void loop() {
S0x = !digitalRead(S0);
S1x = !digitalRead(S1);
S2x = !digitalRead(S2);
S3x = !digitalRead(S3);
if (S2x and !S3x and S0x and S1x)
digitalWrite(M1, HIGH);
if (S2x and S0x and S1x)
digitalWrite(M2, HIGH);
if(S2x){
if(Flag ==0)
{
startwert=millis();
Flag=1;
}
}
if(S3x or !S0x or !S1x)
Flag=0;
if(millis()-startwert>= 4000 and !S3x and S0x and S1x and Flag == 1){
digitalWrite(M3,HIGH);
digitalWrite(M2, LOW);
}
if (S3x or !S0x or !S1x){
digitalWrite(M1, LOW); digitalWrite(M2, LOW); digitalWrite(M3, LOW);
startwert = 0;
}
}