Anda di halaman 1dari 6

Lógica combinacional empleando Arduino y álgebra

de Boole
abril 09, 2017
En la siguiente tutorial se desea simular un sistema de representación binaria que prende 4
LED’s a partir de unas condiciones de entrada. Después de conocer el problema y los
respectivos min-términos, se busca simplificar la función lógica haciendo uso del Álgebra de
Boole y del Teorema de Morgan.

El problema que vamos a resolver consta un circuito digital que tiene como entrada 5
pulsadores (Switchs) P4, P3, P2, P1, P0; que generan señales lógicas y 4 señales de respuesta
R3,R2,R1,R0; que indican las siguientes posibilidades:

 Si el número binario de entrada P4 P3 P2 P1 P0 es mayor que 15 y es múltiplo


de 3, debe activarse R3.
 Si el número binario de entrada es menor o igual a 15 y es múltiplo de 3, debe
activarse R2.
 Si el número binario de entrada es un múltiplo de 5, debe activarse R1.
 Si el número binario de entrada es un múltiplo de 7 debe activarse R0.

Nos podemos ayudar de a tabla de verdad para determinar los Min-términos de la función
o del problema. Esto nos sirve para simplificar la función para prender
cada LED representado por R3, R2, R1 y R0.

TABLA DE VERDAD

ENTRADAS SALIDAS

# P4 P3 P2 P1 P0 R3 R2 R1 R0

0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 1 0 0 0 0

2 0 0 0 1 0 0 0 0 0

3 0 0 0 1 1 0 1 0 0

4 0 0 1 0 0 0 0 0 0
5 0 0 1 0 1 0 0 1 0

6 0 0 1 1 0 0 1 0 0

7 0 0 1 1 1 0 0 0 1

8 0 1 0 0 0 0 0 0 0

9 0 1 0 0 1 0 1 0 0

10 0 1 0 1 0 0 0 1 0

11 0 1 0 1 1 0 0 0 0

12 0 1 1 0 0 0 1 0 0

13 0 1 1 0 1 0 0 0 0

14 0 1 1 1 0 0 0 0 1

15 0 1 1 1 1 0 1 1 0

16 1 0 0 0 0 0 0 0 0

17 1 0 0 0 1 0 0 0 0

18 1 0 0 1 0 1 0 0 0

19 1 0 0 1 1 0 0 0 0

20 1 0 1 0 0 0 0 1 0

21 1 0 1 0 1 1 0 0 1

22 1 0 1 1 0 0 0 0 0

23 1 0 1 1 1 0 0 0 0
24 1 1 0 0 0 1 0 0 0

25 1 1 0 0 1 0 0 1 0

26 1 1 0 1 0 0 0 0 0

27 1 1 0 1 1 1 0 0 0

28 1 1 1 0 0 0 0 0 1

39 1 1 1 0 1 0 0 0 0

30 1 1 1 1 0 1 0 1 0

31 1 1 1 1 1 0 0 0 0

Como se puede observar en las salidas, las casillas en '1' muestra con que combinación de
de P4, P3, P2, P1 y P0 enciende el LED en esa salida.

Ahora vamos hacer uso del álgebra de Boole para simplificar las funciones. Después se
muestra el circuito combinacional, solo con el fin de observar la simplificación final y cómo
se puede montar con circuitos integrados.

Funciones

Para Activar R3

R3(P4,P3,P2,P1,P0) = ∑m(18,21,24,27,30)

FR3(P4,P3,P2,P1,P0) = P4 P3 P2 P1 P0+P4 P3 P2 P1 P0 + P4 P3 P2 P1 P0 +...


...+P4 P3 P2 P1 P0+ P4 P3 P2 P1 P0

FR3(P4,P3,P2,P1,P0) =P4[P3 P2 P1 P0+ P3 P2 P1 P0 + P3 P2 P1 P0 + P3 P2 P1 P0]

FR3(P4,P3,P2,P1,P0) = P4[P1 P0 ( P3 P2) + P3 P2 (P1 P0) + P3 P2 P1 P0]

Circuito lógico para R3


Para activar R2

R2(P4,P3,P2,P1,P0) = ∑m(3,6,9,12,15)

FR2(P4,P3,P2,P1,P0) = P4 P3 P2 P1 P0+P4 P3 P2 P1 P0 + P4 P3 P2 P1 P0 +...


...+P4 P3 P2 P1 P0+ P4 P3 P2 P1 P0

FR2(P4,P3,P2,P1,P0) =P4[P3 P2 P1 P0 + P3 P2 P1 P0 + P3 P2 P1 P0 +P3 P2 P1 P0+...


...+P3 P2 P1 P0]

FR2(P4,P3,P2,P1,P0) = P4[ P3P0 (P2 P1) + P2 P0 (P3 P1) +P3 P2 P1 P0 ]

Circuito lógico para R2


Para activar R1

R1(P4,P3,P2,P1,P0) = ∑m(5,10,15,20,25,30)

FR1(P4,P3,P2,P1,P0) = P4 P3 P2 P1 P0+P4 P3 P2 P1 P0 + P4 P3 P2 P1 P0 +...


...+P4 P3 P2 P1 P0+ P4 P3 P2 P1 P0 + P4 P3 P2 P1 P0

FR1(P4,P3,P2,P1,P0) = P3 P2 P1 (P4P0) + P3 P2 P1 (P4P0) +...


...+P3 P2 ( P4 P1 P0+P4 P1 P0)

FR1(P4,P3,P2,P1,P0) = P2(P4P0)(P3 P1) +P3 P2 ( P4 P1 P0+P4 P1 P0)

Circuito lógico para R1

Para activar R0

R1(P4,P3,P2,P1,P0) = ∑m(7,14,21,28)

FR0(P4,P3,P2,P1,P0) = P4 P3 P2 P1 P0+P4 P3 P2 P1 P0 + P4 P3 P2 P1 P0 +...


...+P4 P3 P2 P1 P0

FR0(P4,P3,P2,P1,P0) = P4 P2 P1 (P3P0) +P4 P2 P1 (P3P0)

FR0(P4,P3,P2,P1,P0) = P2 (P3P0)(P4P1)

Circuito lógico para R0


Conociendo las funciones, solo nos queda implementar el código en Arduino. Para lo cual
vamos hacer uso de la sintaxis if - else.

Te puede interesar (Compuertas lógicas en Arduino)

Montaje

Anda mungkin juga menyukai