//Turvallisuus logiikan periaate
//nastojen määrittelyt
const int doorSensor1 = 14;
const int doorSensor2 = 27;
const int motorLED = 19;
const int faultLED = 18;
void setup() {
//sisäiset PULLDOWN vastukset
pinMode(doorSensor1, INPUT_PULLDOWN);
pinMode(doorSensor2, INPUT_PULLDOWN);
//LEDit lähdöiksi
pinMode(motorLED, OUTPUT);
pinMode(faultLED, OUTPUT);
//AlkutilassAlkutilassaKaikkiPoisPäältä
digitalWrite(motorLED, LOW);
digitalWrite(faultLED, LOW);
Serial.begin(115200);
Serial.println("Turvapiiri simulointi käynnissä");
}
void loop() {
//Anturien tilan luku
int s1 = digitalRead(doorSensor1);
int s2 = digitalRead(doorSensor2);
//Ovi kiinni ja molemmat HIGH
if(s1 == HIGH && s2 == HIGH){
digitalWrite(motorLED, HIGH); // moottori päällä
digitalWrite(faultLED, LOW); //EI VIRHETTÄ
Serial.print("Ovi kiinni -> Moottori päällä ");
}
// Ovi auki molemmat LOW
else if(s1 == LOW && s2 == LOW) {
digitalWrite(motorLED, LOW);
digitalWrite(faultLED, LOW);
Serial.println("OVI AUKI -> MOOTTORI POIS PÄÄLTÄ ");
}
//Rivika iitatilanne, anturivirhe tai muu vikvika
else {
digitalWrite(motorLED, LOW);
digitalWrite(faultLED, HIGH);
}
delay(200);
}