Jetzt hab ich ihn noch mal überarbeitet, hoffe es hilft
int ZTL=0; //Zugmagnet Tor links an Pin 0
int MTLA=1; //Motor Tor links auf an Pin 1
int HMTL=2; //Haltemagnet Tor links an Pin 2
int MTLZ=3; //Motor Tor links zu an Pin 3
int ZTR=4; //Zugmagnet Tor rechts an Pin 4
int MTRA=5; //Motor Tor rechts auf an Pin 5
int HMTR=6; //Haltemagnet Tor rechts an Pin 6
int MTRZ=7; //Motor Tor rechts zu an Pin 7
const int ETLA=8; //Endschalter Tor links auf an Pin 8
const int ETLZ=9; //Endschalter Tor links zu an Pin 9
const int ETRA=10; //Endschalter Tor rechts auf an Pin 10
const int ETRZ=11; //Endschalter Tor recht zu an Pin 11
int TA=A0; //Tor Auf Taster an Pin A0
int TZ=A1; //Tor zu Taster an Pin A1
int tasterstatus_TA=0;
int tasterstatus_TZ=0;
void setup()
{
pinMode (ZTL, OUTPUT);
pinMode (MTLA, OUTPUT);
pinMode (HMTL, OUTPUT);
pinMode (MTLZ, OUTPUT);
pinMode (ZTR, OUTPUT);
pinMode (MTRA, OUTPUT);
pinMode (HMTR, OUTPUT);
pinMode (MTRZ, OUTPUT);
pinMode (TA, INPUT);
pinMode (TZ, INPUT);
pinMode (ETLA, INPUT);
pinMode (ETLZ, INPUT);
pinMode (ETRA, INPUT);
pinMode (ETRZ, INPUT);
}
void loop()
{
digitalRead(TA);
if ((tasterstatus_TA==HIGH)&&(ETLZ==HIGH)) //wenn Taster gedrückt und Endschalter Tor links zu aktiviert ist, dann
{
digitalWrite (ZTL, HIGH); //Zugmagnet Tor links anziehen
delay (1000); //warte 1sek
digitalWrite (MTLA, HIGH); //starte Motor Tor links auf
delay (5000); //warte 5sek
digitalWrite (ZTL, LOW); //Zugmagnet Tor links abfallen
}
else //wenn nicht, dann
{
digitalWrite (ZTL, LOW); //Zugmagnet Tor links AUS
digitalWrite (MTLA, LOW); //Motor Tor links auf AUS
}
if (ETLA == HIGH) //wenn Endschalter Tor links auf aktiviert ist, dann
{
digitalWrite (HMTL, HIGH); //Haltemagnet Tor links anziehen
digitalWrite (MTLA, LOW); //Motor Tor links abschalten
digitalWrite (ZTR, HIGH); //Zugmagnet Tor rechts anziehen
delay (1000); //warte 1sek
digitalWrite (MTRA, HIGH); //starte Motor Tor rechts Auf
delay (5000); //warte 5sek
digitalWrite (ZTR, LOW); //Zugmagnet Tor rechts abfallen
}
else //wenn nicht, dann
{
digitalWrite (MTLA, HIGH); //Motor Tor links auf AN
digitalWrite (ZTR, LOW); //Zugmagnet Tor rechts AUS
digitalWrite (MTRA, LOW); //Motor Tor rechts AUS
}
if (ETRA == HIGH) //wenn Endschalter Tor rechts auf aktiviert ist, dann
{
digitalWrite (HMTR, HIGH); //Haltemagnet Tor rechts anziehen
digitalWrite (MTRA, LOW); //Motor Tor rechts abschalten
}
else //wenn nicht, dann
{
digitalWrite (HMTR, LOW); //Haltemagnet Tor rechts AUS
digitalWrite (MTRA, HIGH); //Motor Tor rechts AN
}
digitalRead(TZ);
if ((tasterstatus_TZ==HIGH)&&(ETRA==HIGH)) //wenn Taster gedrückt und Endschalter Tor rechts auf aktiviert ist, dann
{
digitalWrite (HMTR, LOW); //Haltemagnet Tor rechts AUS
delay (1000); //warte 1sek
digitalWrite (MTRZ, HIGH); //starte Motor Tor rechts zu
delay (1000); //warte 1sek
digitalWrite (ZTR, HIGH); //Zugmagnet Tor rechts anziehen
}
else //wenn nicht, dann
{
digitalWrite (HMTR, HIGH); //Haltemagnet Tor rechts AN
digitalWrite (MTRZ, LOW); //Motor Tor rechts zu AUS
digitalWrite (ZTR, LOW); //Zugmagnet Tor rechts AUS
}
if (ETRZ == HIGH) //wenn Endschalter Tor rechts zu aktiviert ist, dann
{
delay (200); //warte 0,2sek
digitalWrite (ZTR, LOW); //Zugmagnet Tor rechts abfallen
delay (400); //warte 0,4sek
digitalWrite (MTRZ, LOW); //stoppe Motor Tor rechts zu
}
else
{
digitalWrite (ZTR, HIGH); //Zugmagnet Tor rechts AN
digitalWrite (MTRZ, HIGH); //Motor Tor rechts zu AN
}
if (ETRZ == HIGH) //wenn Endschalter Tor rechts zu aktiviert ist, dann
{
digitalWrite (HMTL, LOW); //Haltemagnet Tor links abfallen
delay (1000); //warte 1sek
digitalWrite (MTLZ, HIGH); //starte Motor Tor links zu
delay (1000); //warte 1sek
digitalWrite (ZTL, HIGH); //Zugmagnet Tor links anziehen
}
else //wenn nicht, dann
{
digitalWrite (HMTL, HIGH); //Haltemagnet Tor links angezogen
digitalWrite (MTLZ, LOW); //Motor Tor links zu AUS
digitalWrite (ZTL, LOW); //Zugmagnet Tor links AUS
}
if (ETLZ == HIGH) //wenn Endschalter Tor links zu aktiviert ist, dann
{
delay (200); //warte 0,2sek
digitalWrite (ZTL, LOW); //Zugmagnet Tor links abfallen
delay (200); //warte weitere 0,2sek
digitalWrite (MTLZ, LOW); //und schalte Motor Tor links aus
}
else //wenn nicht, dann
{
digitalWrite (ZTL, HIGH); //Zugmagnet Tor links anziehen
digitalWrite (MTLZ, HIGH); //Motor Tor links zu AN
}
}