// Definicion de Pines de Entrada
const int pinE = 13;
const int pinS0 = 34;
const int pinS1 = 14;
const int pinS2 = 27;
const int pinS3 = 35;
// Definicion de Pines de Salida
const int pinV1 = 25; // Valvula 1
const int pinV2 = 26; // Valvula 2
const int pinOK = 32; // LED Carga Nominal
const int pinALM = 33; // LED Alarma
void setup() {
pinMode(pinE, INPUT);
pinMode(pinS0, INPUT);
pinMode(pinS1, INPUT);
pinMode(pinS2, INPUT);
pinMode(pinS3, INPUT);
pinMode(pinV1, OUTPUT);
pinMode(pinV2, OUTPUT);
pinMode(pinOK, OUTPUT);
pinMode(pinALM, OUTPUT);
}
void loop() {
bool emergencia = digitalRead(pinE) == HIGH;
bool sensorVacio = digitalRead(pinS0) == HIGH;
bool sensorBajo = digitalRead(pinS1) == HIGH;
bool sensorMedio = digitalRead(pinS2) == HIGH;
bool sensorAlto = digitalRead(pinS3) == HIGH;
// Ecuaciones Booleanas Simplificadas
bool V1 = (!emergencia && !sensorVacio
&& sensorBajo && !sensorMedio
&& !sensorAlto)
|| (!emergencia && sensorVacio
&& !sensorBajo && !sensorMedio
&& !sensorAlto);
bool V2 = !emergencia && !sensorVacio
&& sensorBajo && !sensorAlto;
bool OK = !emergencia && !sensorVacio
&& sensorBajo && sensorMedio && sensorAlto;
bool ALM = emergencia
|| (sensorVacio && sensorBajo)
|| (!sensorBajo && sensorMedio)
|| (!sensorMedio && sensorAlto)
|| (!sensorVacio && !sensorBajo);
// Actualizaci´on de Salidas
digitalWrite(pinV1, V1);
digitalWrite(pinV2, V2);
digitalWrite(pinOK, OK);
digitalWrite(pinALM, ALM);
delay(50);
}