Entradas: A, B, C, D | Salida: SalidaBarrera
| A | B | C | D | SalidaBarrera |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Forma Canónica:
Función Simplificada (Karnaugh):
const int leds[] = {13,12,11,10,9,8,7,6,5};
const int entradas[] = {28,26,24,22};
const int numeroLeds = sizeof(leds) / sizeof(leds[0]);
const int numeroEntradas = sizeof(entradas) / sizeof(entradas[0]);
bool A, B, C, D;
bool salidaBarrera;
void setup()
{
Serial.begin(115200);
for(int i = 0; i < numeroLeds; i++){
pinMode(leds[i], OUTPUT);
}
for(int i = 0; i < numeroEntradas; i++){
pinMode(entradas[i], INPUT);
}
}
void loop()
{
A = digitalRead(entradas[0]); // Leo estado Pin 28
B = digitalRead(entradas[1]); // Leo estado Pin 26
C = digitalRead(entradas[2]); // Leo estado Pin 24
D = digitalRead(entradas[3]); // Leo estado Pin 22
// FUNCIÓN
salidaBarrera = !A*!B*C*D + !A*B*C*D + A*!B*C*D + A*B*C*!D + A*B*C*D;
// SALIDA EN EL LED 5
digitalWrite(leds[numeroLeds-1], salidaBarrera);
}