Implementación de semáforos

-3

Me encantaría su ayuda con la implementación de semáforos de 15 segundos.

La luz roja está encendida durante 6 segundos, luego la amarilla (al mismo tiempo que la roja durante dos segundos), luego la luz verde durante 2 segundos (luego parpadea durante tres segundos y medio segundo y media segundo apagado), entonces el amarillo está encendido durante 2 segundos.

El ciclo obtiene una línea de entrada con un ciclo de tiempo de 1 segundo: "o" durante medio segundo y "1" durante 1 segundo.

Dados tres muxes 16X4X1, un contador de 4 bits y no más de dos compuertas lógicas.

¿Alguna sugerencia? Me quedé tranquilo con eso ... ¿Cómo uso este contador de 4 bits (que cuenta con el módulo 4) para mi pregunta? Creo que debería enviar esta información a los muxes.

    
pregunta Jozef

3 respuestas

5

Supongo que la salida es de 3 LED: si es algo que usa más corriente (o necesita un voltaje más alto, entonces tendrás que amortiguar las salidas).

El único 16: 1 mux que encontré fue 74150, que tiene una salida invertida. Si su mux tiene una salida no inversora, entonces tendrá que invertir las entradas :)

De todos modos, configure el contador para que cuente de 0 a 12, conecte cada LED a su propio mux y conecte la entrada del mux a VCC (si desea que el LED esté encendido durante ese tiempo), tierra (si desea que esté apagado o el reloj de 1 Hz (si quieres que parpadee). Este circuito de ejemplo funciona en simulación, también debería funcionar en la vida real.

La compuerta NAND y el inversor restablecen el contador cuando llega a 13: como el contador es asíncrono, el restablecimiento es muy rápido y el tiempo que todos los LED están apagados debe ser muy corto (microsegundos). También debe crear algunos circuitos de reinicio para que reinicie el contador en el encendido, pero requeriría más componentes.

    
respondido por el Pentium100
3

Parte de tu descripción está un poco confusa, pero esto es lo que creo que estás preguntando: necesitas controlar tres luces. Cada uno irá a través de un patrón separado con todo repitiéndose en períodos de 15 segundos. Tiene una onda cuadrada de 1 Hz que se utilizará como reloj de referencia.

Mencionas un método de implementación que usa muxes y puertas lógicas, pero no justificas por qué crees que es la mejor respuesta o ninguna restricción por la que deben usarse, así que solo lo ignoraré.

La respuesta obvia es un microcontrolador. Incluso el más pequeño de todos, el PIC 10F200 puede hacer esto. Tiene 4 pines de E / S y se puede configurar para 1 entrada y 3 salidas, que es exactamente lo que necesita. También puede generar su propio tiempo, por lo que podría ignorar la entrada de 1 Hz si quisiera y usar el tiempo interal.

En cualquier caso, este es un programa muy simple. Nada cambia más rápido que en los límites de 500 ms. Como todo el patrón se repite cada 15 segundos, solo tiene 30 estados diferentes posibles. Una implementación de firmware muy simple y robusta es tener una tabla de los 30 estados. Cada 500 ms de reloj, el firmware avanza a la siguiente entrada de la tabla y copia el valor de 3 bits a los pines de salida. Esto es muy simple, pero permite una fácil modificación del patrón de visualización a medida que los requisitos evolucionan porque solo es necesario cambiar las entradas de la tabla. La lógica sigue siendo la misma. Un 10F200 tiene 255 instrucciones utilizables, lo que es suficiente para la detección simple del borde del reloj, la búsqueda de tablas, la actualización de salida y la tabla en sí.

    
respondido por el Olin Lathrop
0

Los contadores síncronos casi siempre vienen con una línea de restablecimiento, por lo que un contador de 4 bits puede contar hasta un máximo de 16 ciclos, pero puede contar en ciclos de menos. (Sugerencia: si alcanza el recuento #N y afirma restablecer, el siguiente recuento será # 0, de modo que cuente de 0 a N = longitud del ciclo N + 1)

Es de suponer que su entrada de reloj es un reloj de ciclo de trabajo de 1HZ 50% con el que podría implementar el parpadeo (0,5 segundos a 0,5 segundos de apagado) como se describe.

El resto debe ser bastante trivial con la lógica combinacional.

    
respondido por el Jason S

Lea otras preguntas en las etiquetas