Sumador binario de 4 bits arduino

Sumador binario de 4 bits arduino

Sumador binario de 4 bits (parte 1)

Así que se me encargó hacer un sumador de 2 bits utilizando una protoboard, 4 interruptores, 3 LEDs y un Arduino. El problema es que el sumador hace 2 cosas que entran en conflicto (al menos en mi código), la primera es que sólo encenderá una luz (001) para un interruptor encendido, sin embargo también necesita calcular cosas como 10+00, que sólo significan que un interruptor estará encendido, lo que hace que (como dice mi código) acabe encendiendo las luces correspondientes a ambos en lugar de sólo la del medio (010), y viceversa para (001). Sé a ciencia cierta que tiene que ver con la primera parte de mis sentencias if, aquí está el código:
Por favor, disculpe la falta de optimización, (que puede venir después de averiguar el problema con las luces), cualquier ayuda con la optimización también sería muy apreciada, pero por ahora sólo necesito ayuda para hacer que las cosas como 01 + 00 no terminan siendo confundido por sólo 1 interruptor está encendido, lo que resulta en las dos luces que se encienden o sólo uno, pero incorrectamente. Lo hice en Tinkercad:
Ese enfoque funcionará porque el paso 5 tiene prioridad sobre el paso 4 y el paso 4 tiene prioridad sobre el paso 3 y así sucesivamente. Es decir, aunque pongas una salida incorrecta en, por ejemplo, el paso 4, se corregirá en el paso 5 (si todas las entradas están en HIGH).

Tutorial de lógica | construyendo el 74283 74hc283 4 bit adder

Conecté cada fila de 4 LEDs con el MSB en otro color y con un 220 OHM para cada uno de los 4 LEDs usando los LEDs rojos para que mis 5V sean suficientes para conseguir algo de luz. Los cátodos están en el (-), los ánodos en Pins.
Mis pensamientos inmediatos al leer tu pregunta es que necesito ver un esquema, dibujado a mano y fotografiado está bien, y necesito saber qué es cada elemento de hardware que estás usando. No sé lo que es un contador LED de 4 bits, aunque podría adivinarlo, pero incluso si lo adivino podría equivocarme. Por favor, facilite el número de pieza del dispositivo.
Aunque está trabajando con un 9 en lugar de un 4. Al principio funcionaba como contador continuo y la matriz se trabajaba a través de los retrasos. Sin ellos es sólo el parpadeo binario repentino de ambas filas simultáneamente. Pensé que la n es sólo para leer el byte y no tiene nada que ver con el número de LEDs.
delay() es mi odio a la mascota, está bien para pruebas pero no lo uses en ninguna programación seria, sólo atasca las cosas e impide que ocurra nada. En respuesta a la pregunta «mi código no responde muy bien y no sé por qué», que estarás preguntando en un mes o 3; «Es por todos los retardos».

Taller arduino – capítulo 4 – matemáticas de bits

Sumador-Subrayador binario de 4 bitsEn los circuitos digitales, un Sumador-Subrayador binario es aquel que es capaz tanto de sumar como de restar números binarios en un solo circuito. La operación que se realiza depende del valor binario que tenga la señal de control. Es uno de los componentes de la ALU (Unidad Lógica Aritmética).  Este circuito requiere un conocimiento previo de la puerta Exor, la suma y la resta binarias, el sumador completo.  Consideremos dos números binarios de 4 bits A y B como entradas al Circuito Digital para la operación con dígitos A0 A1 A2 A3 para A

Circuito sumador binario de 4 bits 7483

Si has estado trabajando en los proyectos en orden, este es el circuito con más cableado. Con un poco de concentración, éste no debería ser un gran problema. Asegúrate de que el cable más largo (positivo) de cada LED es el que conectas al pin de Arduino y que las resistencias conectan el cable más corto (negativo) al carril GND.
Para relacionar esto con la tabla de valores binarios, gira la protoboard 90º en el sentido de las agujas del reloj. El LED de la parte superior de la protoboard (conectado al pin 7) se convierte en el bit más a la derecha (unidades). Cuando este LED esté encendido, significará un 1 en la columna de unidades. Moviéndonos hacia la izquierda, tenemos 2, 4 y 8 para nuestros encabezados de columna.
En la parte superior del programa, utilizamos un array para almacenar la lista de pines de Arduino que hemos conectado a los LEDs. En la configuración, utilizamos un bucle for para establecer cada uno de estos pines como pines de salida. En el bucle principal, utilizamos otro bucle for para encender todos los pines.
Ejecuta este código tal cual y comprueba que todos los LEDs se encienden. Luego cambia el HIGH a LOW para comprobar que todos se apagan. Si alguno de los LEDs no se enciende, comprueba que están correctamente conectados en el cable positivo (más largo) a un pin de Arduino y que tienen una resistencia que conecta el cable más corto (negativo) a GND. Si todas las conexiones parecen correctas, prueba a cambiar el LED por otro del kit.

Usamos cookies para asegurar que le damos la mejor experiencia en nuestra web. Si continúa usando este sitio, asumiremos que está de acuerdo con ello. Nuestros socios (incluye a Google) podrán compartir, almacenar y gestionar sus datos para ofrecerle anuncios personalizados    Más información
Privacidad