Hola que tal muchach@s, antes que todo quisiera decir que soy nuevo en el foro, por lo que no sé si algo similar había sido preguntado antes.
Resulta que estoy armando un sistema Contador de ciclos de cierta secuencia de un número binario de 3 bits, estas secuencias corresponden a la combinación de las luces de dos semáforos de 3 luces cada uno, rojo,verde y amarillo( en ese orden).
El contador contará cada vez que se cumpla la siguiente secuencia completa correspondiente al encendido y apagado de las luces en ambos semáforos:
1. En el inicio debe estar encendida solo la luz roja, por lo que se tiene : 100 en cada semáforo.
2. Luego deben estar encendidas la luz roja y la luz amarilla, por lo que se tiene: 101 en cada semáforo.
3. Luego deben estar encendida la luz amarilla y la verde, por lo que se tiene :011 en cada semáforo.
4. Luego debe estar encendida sólo la luz verde, por lo que se tiene: 010 en cada semáforo.
5. se vuelve al paso 3.
6. se vuelve al paso 2.
7. se vuelve al paso 1.
Cómo se puede inferir, hay 6 variables (las 3 luces por cada semáforo) , por lo que el total de combinaciones de luces que se pueden dar corresponden a 2^6=64, de esas 64 sólo las 7 secuencias anteriores de pares de 3 bits deben ser tomadas en cuenta para completar un ciclo completo que llegaran a un contador que las acumulará hasta llegar hasta 999.999 y los irá mostrando en 5 displays.
El sistema contador ya lo diseñé y no tiene ningún problema, salvo que me tira un error después de ciertos conteos (error que creo debe ser por la frecuencia de conmutación que le doy a la señal de onda cuadrada al inicio del contador, también hice este con un switch, debido a que la frecuencia en que se cumplirá cada ciclo no es constante, y tb me tire un error en un tiempo mucho más largo eso si) .
Mi principal problema es con el filtro de bits que se deben dar para completar un ciclo que llegará al contador a través de un 1 lógico. Yo lo diseñé con 7 pares de comparadores (74HC85) conectados en serie, debido a que son 6 bits los que se deben comparar con las 6 entradas aleatorias( 3 de cada semáforo). la cuarta entrada de cada comparador sólo las conecté a tierra, para que de esa forma me compare los 6 bits que necesito. hice esto de manera que me comparara primero los bits de una entrada aleatoria con los del paso 1, las salidas mayor y menor las conecté a tierra, con lo que sólo me quedará la salida igual de estos pares de comparadores de 6 bits, esta salida va conectada a una puerta and (74Ls08D) de dos entradas, la otra entra va conectada a 5(V) (1 lógico). con lo que el primer par comparador,al final de la puerta and, arrojará 1 sólo cuando se cumpla el requerimiento del paso 1, es decir, 100 100.....luego, dicha salida la conecté a la entrada(A=B) del siguiente para comparador, este par de comparadores comparará los bits 101 101 de ambos semáforos (correspondiente al paso 2) , de igual forma a lo anterior, saldrá 1 de la salida de este para comparador cuando la entrada aleatoria sea igual a lo requerido......
estos pasos se repiten conectando los otros 5 pares de comparadores de menera que se cumpla la secuencia de código que necesito....al final de este sistema comparados va una puerta and que me dará como salida un 1 cuando se cumpla un ciclo completo, esto va conectado al sistema contador y se mostrará en los displays.
El problema de esto es que no me funciona, ya revisé las conecciones, y la teoría muy bien, y no encuentro el error...de hecho revisé cada par comparador, le asigné a cada numero binario del comparador el mismo valor, de manera que la salida A=B me diera uno y conecté en esa salida un led para ver si me encendía y no pasó nada....los comparadores están perfectamente alimentados con 5 volts y aterrizados y no encuentro cuál es el error....incluso fuí más riguroso y simulé cada comparador con puertas lógicas y nunca se me encendio el led.....luego tambien simulé una simple puerta and de dos entradas y les dí a ambas entradas un valor de 5 volts, por lo que su salida debiera ser un uno lógico...conecté una resistencia de 330 ohms y en serie un led y tampoco encendio.....
todo lo anterior lo simulé en multisim, sería de gran ayuda para mi que me ayudaran con el sistema comparador que usaré como filtro del código , porque no entiendo la falla....si tienen alguna otra idea será bienvenida.
estaré atento a sus respuestas, gracias.
PDerdón el largo de la pregunta pero no pude resumirlo más. ...
Resulta que estoy armando un sistema Contador de ciclos de cierta secuencia de un número binario de 3 bits, estas secuencias corresponden a la combinación de las luces de dos semáforos de 3 luces cada uno, rojo,verde y amarillo( en ese orden).
El contador contará cada vez que se cumpla la siguiente secuencia completa correspondiente al encendido y apagado de las luces en ambos semáforos:
1. En el inicio debe estar encendida solo la luz roja, por lo que se tiene : 100 en cada semáforo.
2. Luego deben estar encendidas la luz roja y la luz amarilla, por lo que se tiene: 101 en cada semáforo.
3. Luego deben estar encendida la luz amarilla y la verde, por lo que se tiene :011 en cada semáforo.
4. Luego debe estar encendida sólo la luz verde, por lo que se tiene: 010 en cada semáforo.
5. se vuelve al paso 3.
6. se vuelve al paso 2.
7. se vuelve al paso 1.
Cómo se puede inferir, hay 6 variables (las 3 luces por cada semáforo) , por lo que el total de combinaciones de luces que se pueden dar corresponden a 2^6=64, de esas 64 sólo las 7 secuencias anteriores de pares de 3 bits deben ser tomadas en cuenta para completar un ciclo completo que llegaran a un contador que las acumulará hasta llegar hasta 999.999 y los irá mostrando en 5 displays.
El sistema contador ya lo diseñé y no tiene ningún problema, salvo que me tira un error después de ciertos conteos (error que creo debe ser por la frecuencia de conmutación que le doy a la señal de onda cuadrada al inicio del contador, también hice este con un switch, debido a que la frecuencia en que se cumplirá cada ciclo no es constante, y tb me tire un error en un tiempo mucho más largo eso si) .
Mi principal problema es con el filtro de bits que se deben dar para completar un ciclo que llegará al contador a través de un 1 lógico. Yo lo diseñé con 7 pares de comparadores (74HC85) conectados en serie, debido a que son 6 bits los que se deben comparar con las 6 entradas aleatorias( 3 de cada semáforo). la cuarta entrada de cada comparador sólo las conecté a tierra, para que de esa forma me compare los 6 bits que necesito. hice esto de manera que me comparara primero los bits de una entrada aleatoria con los del paso 1, las salidas mayor y menor las conecté a tierra, con lo que sólo me quedará la salida igual de estos pares de comparadores de 6 bits, esta salida va conectada a una puerta and (74Ls08D) de dos entradas, la otra entra va conectada a 5(V) (1 lógico). con lo que el primer par comparador,al final de la puerta and, arrojará 1 sólo cuando se cumpla el requerimiento del paso 1, es decir, 100 100.....luego, dicha salida la conecté a la entrada(A=B) del siguiente para comparador, este par de comparadores comparará los bits 101 101 de ambos semáforos (correspondiente al paso 2) , de igual forma a lo anterior, saldrá 1 de la salida de este para comparador cuando la entrada aleatoria sea igual a lo requerido......
estos pasos se repiten conectando los otros 5 pares de comparadores de menera que se cumpla la secuencia de código que necesito....al final de este sistema comparados va una puerta and que me dará como salida un 1 cuando se cumpla un ciclo completo, esto va conectado al sistema contador y se mostrará en los displays.
El problema de esto es que no me funciona, ya revisé las conecciones, y la teoría muy bien, y no encuentro el error...de hecho revisé cada par comparador, le asigné a cada numero binario del comparador el mismo valor, de manera que la salida A=B me diera uno y conecté en esa salida un led para ver si me encendía y no pasó nada....los comparadores están perfectamente alimentados con 5 volts y aterrizados y no encuentro cuál es el error....incluso fuí más riguroso y simulé cada comparador con puertas lógicas y nunca se me encendio el led.....luego tambien simulé una simple puerta and de dos entradas y les dí a ambas entradas un valor de 5 volts, por lo que su salida debiera ser un uno lógico...conecté una resistencia de 330 ohms y en serie un led y tampoco encendio.....
todo lo anterior lo simulé en multisim, sería de gran ayuda para mi que me ayudaran con el sistema comparador que usaré como filtro del código , porque no entiendo la falla....si tienen alguna otra idea será bienvenida.
estaré atento a sus respuestas, gracias.
PDerdón el largo de la pregunta pero no pude resumirlo más. ...
Última edición: