// Definición de pines de entrada
// DIP Switch -> D:5, C:6, B:7, A:8
const int pinA = 18; //D6 físico NodeMCU
const int pinB = 19; //D5 físico NodeMCU
const int pinC = 22; //D2 físico NodeMCU
const int pinD = 23; //D1 físico NodeMCU
// Definición de pin de salida para el LED
const int pinLED = 5; //D7 físico NodeMCU
void setup() {
// Configuración de pines de entrada
pinMode(pinA, INPUT);
pinMode(pinB, INPUT);
pinMode(pinC, INPUT);
pinMode(pinD, INPUT);
// Configuración de pin de salida para el LED
pinMode(pinLED, OUTPUT);
}
void loop() {
// Lectura de entradas
int A = digitalRead(pinA);
int B = digitalRead(pinB);
int C = digitalRead(pinC);
int D = digitalRead(pinD);
// Evaluación de la expresión booleana
int resultado = evaluarExpresion(A, B, C, D);
// Encender o apagar el LED basado en el resultado de la expresión
if( resultado == 0 )
digitalWrite(pinLED, LOW);
else
digitalWrite(pinLED, HIGH);
}
// Función para evaluar la expresión booleana
int evaluarExpresion(int A, int B, int C, int D) {
//Reemplazar la expresión en minitérminos con la ecuación simplificada
return ( (!A && !B && !C && !D) || //m0
(!A && !B && !C && D) || //m1
(!A && !B && C && !D) || //m2
( A && !B && !C && D) || //m9
( A && !B && C && D) ); //m11
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4