const int pinA = 12; // Pines de entrada a, b, c, d
const int pinB = 14;
const int pinC = 27;
const int pinD = 26;
const int pinR = 16; // Pines de salida r, v, a_out
const int pinV = 17;
const int pinAOut = 4;
void setup() {
// Se definen los pines para a, b, c, d como input y riego, ventilador y alarma como salidas (output)
pinMode(pinA, INPUT_PULLUP);
pinMode(pinB, INPUT_PULLUP);
pinMode(pinC, INPUT_PULLUP);
pinMode(pinD, INPUT_PULLUP);
pinMode(pinR, OUTPUT);
pinMode(pinV, OUTPUT);
pinMode(pinAOut, OUTPUT);
// Las salidas empiezan apagadas
digitalWrite(pinR, LOW);
digitalWrite(pinV, LOW);
digitalWrite(pinAOut, LOW);
}
void loop() {
// Lee el estado de los pins de entrada
int a = !digitalRead(pinA);
int b = !digitalRead(pinB);
int c = !digitalRead(pinC);
int d = !digitalRead(pinD);
// Se definen las expresiones booleanas de la tabla de verdad
int r = !a & b;
int v = a & c | b | c & d;
int a_out = a & b & c | a & b & d | b & !c & d;
// Se otorga un estado dependiendo la lectura de pines
digitalWrite(pinR, r);
digitalWrite(pinV, v);
digitalWrite(pinAOut, a_out);
}