Una tabla de verdad es una herramienta que muestra todas las combinaciones posibles de entradas y sus resultados correspondientes en un sistema lógico digital.
🎯 Objetivo de este tutorial:
Determinar si un número de 4 bits (A, B, C, D) es par o impar.
Regla fundamental: Un número es par si su bit menos significativo (D) es 0.
🎮 Simulador Interactivo
Usa los interruptores para cambiar las entradas y observa el resultado:
Entrada A
(Bit más significativo)
0
Entrada B
0
Entrada C
0
Entrada D
(Bit menos significativo)
0
Número: 0000 = 0
Resultado: ES PAR
📊 Tabla de Verdad Completa
Todas las combinaciones posibles de 4 bits (0 a 15):
A
B
C
D
Decimal
Binario
Es Par
💡 Explicación de la Lógica
🔍 ¿Por qué el bit D determina si es par o impar?
En el sistema binario, cada posición representa una potencia de 2:
Posición A: 2³ = 8
Posición B: 2² = 4
Posición C: 2¹ = 2
Posición D: 2⁰ = 1
El bit D (posición 1) es el único que puede hacer que un número sea impar. Si D=1, el número será impar; si D=0, será par.
🧮 Ejemplos:
Número 6: 0110 → D=0 → PAR
Número 7: 0111 → D=1 → IMPAR
Número 14: 1110 → D=0 → PAR
Número 15: 1111 → D=1 → IMPAR
💻 Código Arduino
Implementación en C para Arduino:
// Definición de pinesconstint PIN_ENTRADA_A = 22;
constint PIN_ENTRADA_B = 24;
constint PIN_ENTRADA_C = 26;
constint PIN_ENTRADA_D = 28;
constint PIN_LED_PAR = 13;
// Variables para almacenar el estado de las entradasint entrada_A, entrada_B, entrada_C, entrada_D;
int numero_decimal;
int es_par;
voidsetup() {
// Configurar pines de entrada (con resistencias externas)pinMode(PIN_ENTRADA_A, INPUT);
pinMode(PIN_ENTRADA_B, INPUT);
pinMode(PIN_ENTRADA_C, INPUT);
pinMode(PIN_ENTRADA_D, INPUT);
// Configurar pin de salida para LEDpinMode(PIN_LED_PAR, OUTPUT);
// Inicializar comunicación serialSerial.begin(9600);
}
voidloop() {
// Leer estado actual de las entradasleer_entradas();
// Calcular número decimal
numero_decimal = calcular_decimal();
// Determinar si es par
es_par = determinar_si_es_par();
// Controlar LEDdigitalWrite(PIN_LED_PAR, es_par ? HIGH : LOW);
// Mostrar estado actual en serialmostrar_estado_actual();
delay(500);
}
// Función para leer las entradasvoidleer_entradas() {
entrada_A = digitalRead(PIN_ENTRADA_A);
entrada_B = digitalRead(PIN_ENTRADA_B);
entrada_C = digitalRead(PIN_ENTRADA_C);
entrada_D = digitalRead(PIN_ENTRADA_D);
}
// Función para calcular el valor decimalintcalcular_decimal() {
return (entrada_A << 3) | (entrada_B << 2) |
(entrada_C << 1) | entrada_D;
}
// Función para determinar si un número es parintdeterminar_si_es_par() {
// Un número es par si el bit menos significativo (D) es 0return (entrada_D == 0);
}
// Función para mostrar estado actualvoidmostrar_estado_actual() {
Serial.print("A=");
Serial.print(entrada_A);
Serial.print(" B=");
Serial.print(entrada_B);
Serial.print(" C=");
Serial.print(entrada_C);
Serial.print(" D=");
Serial.print(entrada_D);
Serial.print(" | Decimal=");
Serial.print(numero_decimal);
Serial.print(" | Es Par=");
Serial.println(es_par ? "SI" : "NO");
}
🎯 Resumen
✅ Puntos clave aprendidos:
Una tabla de verdad muestra todas las combinaciones posibles
Para 4 entradas hay 2⁴ = 16 combinaciones (0 a 15)
Un número es par si su bit menos significativo es 0