int relais1pin = 7; //Blau -> Grau
int relais2pin = 10; //Grau -> Blau
int endschalter1 = 11; //zeigt Blau
int endschalter2 = 12; //zeigt Grau
int tasterstatus1 = 0; //zeigt Blau
int tasterstatus2 = 0; //zeigt Grau
int booleanBlauGrau = 0;
int booleanGrauBlau = 0;
int booleanWarten = 0;
int anfangsstellung = 0;
void setup() {
pinMode(relais1pin, OUTPUT);
pinMode(relais2pin, OUTPUT);
pinMode(endschalter1, INPUT_PULLUP);
pinMode(endschalter2, INPUT_PULLUP);
}
void loop() {
tasterstatus1 = digitalRead(endschalter1); //Aktiv wen Blau vorne ist
tasterstatus2 = digitalRead(endschalter2); //Aktiv wen Grau vorne ist
if (anfangsstellung == 0) {
Anfangsstellung();
}
if (booleanBlauGrau == 1) {
setBlauGrau();
}
if (booleanGrauBlau == 1) {
GrauBlau();
}
}
void Anfangsstellung() {
digitalWrite(relais1pin, HIGH);
digitalWrite(relais2pin, LOW);
if (tasterstatus2 == 0) {
digitalWrite(relais1pin, LOW);
digitalWrite(relais2pin, LOW);
anfangsstellung = 1;
booleanBlauGrau = 1;
booleanGrauBlau = 0;
Warten();
}
}
void Warten() {
delay(5000);
CheckRichtung();
}
void CheckRichtung() {
if (booleanBlauGrau == 1) {
setBlauGrau();
}
if (booleanGrauBlau == 1) {
GrauBlau();
}
}
void GrauBlau() {
digitalWrite(relais1pin, HIGH);
digitalWrite(relais2pin, LOW);
if (tasterstatus2 == LOW) {
digitalWrite(relais1pin, LOW);
digitalWrite(relais2pin, LOW);
booleanBlauGrau = 1;
booleanGrauBlau = 0;
Warten();
}
}
void setBlauGrau() {
digitalWrite(relais1pin, LOW);
digitalWrite(relais2pin, HIGH);
if (tasterstatus1 == LOW) {
digitalWrite(relais1pin, LOW);
digitalWrite(relais2pin, LOW);
booleanBlauGrau = 0;
booleanGrauBlau = 1;
Warten();
}
}