🔢 Tutorial: Tabla de Verdad para Números Pares

Aprende la lógica digital de manera interactiva

📚 ¿Qué es una Tabla de Verdad?

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 pines const int PIN_ENTRADA_A = 22; const int PIN_ENTRADA_B = 24; const int PIN_ENTRADA_C = 26; const int PIN_ENTRADA_D = 28; const int PIN_LED_PAR = 13; // Variables para almacenar el estado de las entradas int entrada_A, entrada_B, entrada_C, entrada_D; int numero_decimal; int es_par; void setup() { // 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 LED pinMode(PIN_LED_PAR, OUTPUT); // Inicializar comunicación serial Serial.begin(9600); } void loop() { // Leer estado actual de las entradas leer_entradas(); // Calcular número decimal numero_decimal = calcular_decimal(); // Determinar si es par es_par = determinar_si_es_par(); // Controlar LED digitalWrite(PIN_LED_PAR, es_par ? HIGH : LOW); // Mostrar estado actual en serial mostrar_estado_actual(); delay(500); } // Función para leer las entradas void leer_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 decimal int calcular_decimal() { return (entrada_A << 3) | (entrada_B << 2) | (entrada_C << 1) | entrada_D; } // Función para determinar si un número es par int determinar_si_es_par() { // Un número es par si el bit menos significativo (D) es 0 return (entrada_D == 0); } // Función para mostrar estado actual void mostrar_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
  • Los números pares son: 0, 2, 4, 6, 8, 10, 12, 14
  • Los números impares son: 1, 3, 5, 7, 9, 11, 13, 15
  • La función lógica es: Es_Par = NOT(D)