#define offnenTaster 2 // Taster S1: Öffnen
#define schliessenTaster 3 // Taster S2: Schließen
#define haltTaster 4 // Taster S0: Halt
#define lichtschranke 5 // Lichtschranke LI
#define tuerAuf 6 // Endschalter S3: Tür auf
#define tuerZu 7 // Endschalter S4: Tür zu
#define ventilOffnen 8 // Ausgang Y1: Tür öffnet
#define ventilSchliessen 9 // Ausgang Y2: Tür schließt
unsigned long timerStart = 0; // Timer-Startzeit
void setup() {
// Inputs
pinMode(offnenTaster, INPUT_PULLUP);
pinMode(schliessenTaster, INPUT_PULLUP);
pinMode(haltTaster, INPUT_PULLUP);
pinMode(lichtschranke, INPUT_PULLUP);
pinMode(tuerAuf, INPUT_PULLUP);
pinMode(tuerZu, INPUT_PULLUP);
// Outputs
pinMode(ventilOffnen, OUTPUT);
pinMode(ventilSchliessen, OUTPUT);
digitalWrite(ventilOffnen, LOW);
digitalWrite(ventilSchliessen, LOW);
}
void loop()// Tür öffnen
{
if (offnenTaster && !haltTaster )
{digitalWrite(tuerAuf, HIGH);
digitalWrite(tuerZu, LOW);
}
if (haltTaster)
{digitalWrite(tuerAuf, LOW);
digitalWrite(tuerZu, LOW);
timerStart = 0;
}
if (tuerAuf && !haltTaster)
{digitalWrite(tuerAuf, LOW);
digitalWrite(tuerZu, LOW);
timerStart=millis();
}
if ((millis()-timerStart> 6000 )||(offnenTaster&& !haltTaster))
{digitalWrite(tuerAuf, LOW);
digitalWrite(tuerZu, HIGH);
if ((tuerZu)||(!haltTaster)||(lichtschranke))
{digitalWrite(tuerAuf, LOW);
digitalWrite(tuerZu, LOW);
}
}
}