const int botonA = 2; // Entrada A
const int botonB = 3; // Entrada B
const int botonNot = 4; // Entrada para compuerta NOT
// --- Pines de SALIDAS ---
const int ledAND = 8;
const int ledOR = 9;
const int ledNOT = 10;
void setup() {
// Configuramos los botones como entradas con resistencia pull-up interna
pinMode(botonA, INPUT_PULLUP);
pinMode(botonB, INPUT_PULLUP);
pinMode(botonNot, INPUT_PULLUP);
// Configuramos los LEDs como salidas
pinMode(ledAND, OUTPUT);
pinMode(ledOR, OUTPUT);
pinMode(ledNOT, OUTPUT);
}
void loop() {
// Leemos los botones (por INPUT_PULLUP, 0 = presionado, 1 = sin presionar)
int A = digitalRead(botonA);
int B = digitalRead(botonB);
int N = digitalRead(botonNot);
// Invertimos los valores para tener lógica normal (1 = presionado)
A = !A;
B = !B;
N = !N;
// --- COMPUERTA AND ---
// Solo enciende el LED si A y B están presionados al mismo tiempo
digitalWrite(ledAND, A && B);
// --- COMPUERTA OR ---
// Enciende si A o B (o ambos) están presionados
digitalWrite(ledOR, A || B);
// --- COMPUERTA NOT ---
// Enciende el LED si el botón NO está presionado (inversión)
digitalWrite(ledNOT, !N);
}