¿Cómo usar contadores SOLAMENTE para construir un circuito School Bell?

0

Estoy realmente atascado aquí, nuestro instructor nos dijo que no usáramos el temporizador 555 (y, para ser sincero, nunca lo usé). Así que se supone que debemos hacer un circuito usando solo contadores, supongo.

¿Cómo puedo generar períodos de tiempo y establecer el tiempo en segundos o minutos? ¿Es Johnson Counter el mejor para usar aquí?

Incluí el proyecto necesario y los períodos que hice, si es que alguien podría ayudarme en eso. Mi proyecto se debe entregar el próximo lunes, y estaría muy agradecido si alguien pudiera darme una idea o una sugerencia para comenzar.

El proyecto: Diseñe un circuito digital que se pueda adjuntar a una factura escolar que pueda funcionar automáticamente de 7:00 am a 12:45 pm, y tiene las siguientes características

1- Anillos durante 5 segundos.

2- Comience a sonar a las 7:00 AM para anunciar la reunión de campo.

3- Anillos 7:20 para ir a clase.

4- Timbres para el inicio del primer período de clase a las 7:35 AM.

5- Anillos para el final de cada período después de 40 minutos desde su inicio.

6- Anillos para descanso después de 10 minutos desde el final del período anterior para anunciar el siguiente periodo de clase.

7- Después del tercer período, un descanso de 30 minutos.

* La campana suena durante 5 segundos.

7:00 AM ( Timbre para la recopilación de campos)

7:20 AM ( Timbre para ir a clase)

7:35 AM ( Timbre para el INICIO de primera clase)

8:15 AM ( Timbre para el FIN de primera clase)

8:15 a.m. - 8:25 a.m. (Pausa durante 10 minutos)

8:25 AM ( Timbre para el INICIO de 2da clase)

9:05 AM ( Timbre para el FIN de 2da clase)

9:05 a.m. - 9:15 a.m. (pausa de 10 minutos)

9:15 AM ( Timbre para el INICIO de 3ra clase)

9:55 AM ( Timbre para el FIN de la tercera clase)

9:55 AM - 10:25 AM (pausa por 30 minutos)

10:25 AM ( Timbre para el 4º INICIO de la clase)

11:05 AM ( Timbre para el 4to fin de clase)

11:05 AM - 11:15 AM (Pausa por 10 minutos)

11:15 AM ( Timbre para la 5ª clase START)

11:55 AM ( Timbre para el FIN de la 5ta clase)

11:55 AM - 12:05 AM (Pausa durante 10 minutos)

12:05 AM ( Timbre para el inicio de la sexta clase)

12:45 AM ( Timbre para el 6º fin de clase)

    
pregunta Sam

4 respuestas

8

Sin embargo, como lo hagas, necesitarás algún tipo de señal de tiempo como base para tu sistema.

Ese podría ser el temporizador (prohibido por tu profesor) 555, o un oscilador de cristal, o cualquier cosa que dé una señal de encendido / apagado regular con una frecuencia conocida.

Luego tienes tus contadores.

Ahora, un módulo de contador binario (como el 74xx393 por ejemplo) también es un divisor de frecuencia.

Tome esta tabla de verdad, por ejemplo:

 IN | Q1 | Q2 | Q3 | Q4
----+----+----+----+----
  0 |  0 |  0 |  0 |  0 
  1 |  0 |  0 |  0 |  0
  0 |  1 |  0 |  0 |  0
  1 |  1 |  0 |  0 |  0
  0 |  0 |  1 |  0 |  0
  1 |  0 |  1 |  0 |  0
  0 |  1 |  1 |  0 |  0
  1 |  1 |  1 |  0 |  0
  0 |  0 |  0 |  1 |  0
  1 |  0 |  0 |  1 |  0
  0 |  1 |  0 |  1 |  0
  1 |  1 |  0 |  1 |  0
  0 |  0 |  1 |  1 |  0
  1 |  0 |  1 |  1 |  0
  0 |  1 |  1 |  1 |  0
  1 |  1 |  1 |  1 |  0
  0 |  0 |  0 |  0 |  1
  1 |  0 |  0 |  0 |  1
  0 |  1 |  0 |  0 |  1
  1 |  1 |  0 |  0 |  1
  0 |  0 |  1 |  0 |  1
  1 |  0 |  1 |  0 |  1
  0 |  1 |  1 |  0 |  1
  1 |  1 |  1 |  0 |  1
  0 |  0 |  0 |  1 |  1
  1 |  0 |  0 |  1 |  1
  0 |  1 |  0 |  1 |  1
  1 |  1 |  0 |  1 |  1
  0 |  0 |  1 |  1 |  1
  1 |  0 |  1 |  1 |  1
  0 |  1 |  1 |  1 |  1
  1 |  1 |  1 |  1 |  1

Puede ver que Q1 está alternando a la mitad de la velocidad del pin IN. Q2 está cambiando a la mitad de la velocidad otra vez, y Q3 a la mitad otra vez, y así sucesivamente.

Entonces, se podría decir que la frecuencia de Q1 es la mitad de IN, y Q2 es de 1/4 IN y Q3 de 1/8 IN y q4 de 1/16 IN.

Por lo tanto, si tiene una frecuencia de entrada de, digamos, 32768Hz (la velocidad a la que se ejecutan los cristales del reloj) entonces simplemente usando contadores puede obtener:

  • 32768Hz
  • 16384Hz
  • 8192Hz
  • 4096Hz
  • 2048Hz
  • 1024Hz
  • 512Hz
  • 256Hz
  • 128Hz
  • 64Hz
  • 32Hz
  • 16hz
  • 8Hz
  • 4Hz
  • 2Hz
  • 1Hz: eso es pulsos de 1 segundo
  • 0.5Hz - 2 segundos
  • 0.25Hz: estás a 4 segundos de pulsación ahora
  • 0.125Hz - 8 segundos
  • 0.0625Hz - 16 segundos
  • 0.03125Hz - 32 segundos

etc

Puede ver cómo es posible acumular algunos períodos bastante largos a partir de lo que comienza como un reloj de entrada bastante rápido. Combine varios contadores juntos y pronto podrá obtener muchos momentos diferentes.

Por supuesto, si comienzas con una frecuencia diferente, puedes obtener diferentes combinaciones de tiempo. Por ejemplo, si crea una señal de reloj de 0.2Hz para comenzar (que es un pulso de 5 segundos) y luego usa los contadores, puede hacer 10 segundos, 20 segundos, 40 segundos, 80 segundos, 160 segundos, etc. con bastante facilidad.

    
respondido por el Majenko
11

Esto es simplemente pedir un microcontrolador. Incluso el más simple que puede manejar un cristal (para una sincronización precisa) puede hacer esto. Así es como se haría en el mundo real.

Si nunca has usado un micro antes, hay mucho que aprender. Sin embargo, parece que estás en algún campo de estudio relacionado con la electrónica, por lo que tendrás que aprender esto tarde o temprano. Cuanto antes lo haga, más podrá tenerla disponible como herramienta y no contorsionar los diseños para evitar los microcontroladores.

Así que profundiza y consigue a través de él. Uno de los PIC 12F de Microchip debería poder hacer esto. Cualquier cosa que pueda conducir un cristal servirá. Una pequeña 12F es fácil de aprender porque tiene muy poca memoria RAM y programa para preocuparse por la banca y la paginación. Dado que la entrada a la lógica es solo el oscilador y la salida es un nivel digital único que finalmente impulsaría las campanas, esto puede ser fácilmente simulado. Puede escribir y verificar todo el programa en el simulador de MPLAB.

Encuentre un PIC 12F que pueda manejar un cristal (la mayoría de ellos creo), obtenga un poco más, lea la hoja de datos, instale el MPLAB gratuito y comience a jugar con código en el simulador.

    
respondido por el Olin Lathrop
2

Un 555 sería una herramienta extremadamente mala para usar en esta solución, por lo que no usar ninguna es razonable.

Esta sería una tarea trivialmente fácil para, por ejemplo, un Arduino.

Si se espera que NO use un microcontrolador , la siguiente solución es buena.

Sin embargo, no utilizar un microcontrolador sería una decisión cercana a la locura en cualquier entorno moderno, a menos que existieran razones especiales excepcionales para no hacerlo. Por ejemplo, en algunas industrias como las plantas nucleares, el uso de cualquier equipo programable incluso en un rol de soporte menor requiere un grado de certificación que hace que su uso sea poco atractivo en muchas aplicaciones. A menos que exista este tipo de requisito, un microcontrolador tiene 6 cabezas y 27 hombros por encima de cualquier alternativa.

SO

  • Proporcione una cadena de contador accionada por un reloj de estabilidad adecuada y con salidas de contador que varíen con una resolución de tiempo al menos tan fina como su necesidad. por ejemplo, ignorar el tiempo de ejecución de 5 segundos de la campana, que no está relacionado con el tiempo principal. Como sus tiempos parecen estar en límites de 1 minuto, (probablemente) estará bien una "marca" de 1 minuto o más fina.

  • Diga un contador binario con salidas de 1 2 4 8 16 32 64 128 256 512 minutos.
    Cada una de las salidas anteriores es alta o baja = a 1 o a 0. Para obtener salidas como las anteriores necesitas 10 salidas.
    Un contador con las salidas 1 a 512 anteriores contará hasta 1023 (= 1 menos de lo que sería el siguiente paso). 1023 minutos = ~ 17 horas. Agregue la salida 1024 si desea 34 horas = más de un día. Si tiene 14 salidas, puede cubrir una semana completa de 7 días con una ubicación por 1 segundo.

    Proporcione una memoria direccionable binaria con al menos 10 líneas de dirección.

    Conecte la cadena del contador de arriba a la memoria de arriba y, a medida que el contador opera, se dirige a una nueva ubicación de memoria una vez por minuto.

Esta memoria AT28HC64B 8k x 8 es una exageración masiva para lo que desearía, pero resulta que Digikey es la PROM más barata y programable eléctricamente más adecuada. hoja de datos sobre $ US2.65 / 1.

Las memorias serán típicamente de 8 bits. Así que tienes que decir 8 en salidas que se pueden cambiar una vez por minuto.

Programe la memoria con una salida de timbre cuando sea necesario. Como tiene 8 bits, puede ser creativo, por ejemplo, establezca un bit para el timbre con un toque adicional al final de los períodos y otro bit para un timbre diferente al inicio, etc.

La duración real del timbre puede controlarse mediante un contador que se activa cuando la salida de la memoria aumenta y comienza a contar y se detiene cuando alcanza un conteo correspondiente a 5 segundos o el período de timbre requerido. CD4060 tiene todo lo que se requiere para esto.
 Hoja de datos seriamente antigua aquí . Tenga en cuenta que la figura 12 muestra cómo se puede hacer un reloj automático.

    
respondido por el Russell McMahon
1

Un microcontrolador ciertamente parecería el enfoque más natural en la actualidad, dado que los microcontroladores baratos pueden ser más económicos que el dispositivo lógico programable más simple o la lógica discreta necesaria para hacer casi cualquier cosa. No obstante, desde un punto de vista educativo, podría tener algún valor tratar de descubrir el enfoque óptimo utilizando algo como un CPLD o una cierta biblioteca de chips lógicos discretos.

Por ejemplo, dado que todos los tiempos son múltiplos de cinco minutos, y que se supone que las campanas suenan durante cinco segundos, probablemente tendría sentido diseñar un circuito que generaría un pulso de cinco segundos cada cinco minutos. Aunque se podría diseñar un circuito que simplemente contaría 288 intervalos de 5 minutos por día y usar lógica combinatoria para decidir cuál de esos 288 intervalos sonaría, probablemente sería más fácil subdividir el día en 32 intervalos de longitud variable (uso un contador de 5 bits) y luego use un contador de 4 bits para generar esos intervalos (1-15 veces cinco minutos). Use un poco de lógica combinatoria para establecer la longitud de los 32 intervalos de longitud variable, y determine para cada uno si la campana debe sonar al principio.

Una solución de lógica discreta probablemente podría realizarse en una placa de tamaño bastante razonable sin demasiada dificultad, utilizando contadores y puertas lógicas de la serie 74xx, además de un oscilador de 32 KHz. Minimizar el número de fichas puede ser un desafío interesante para el pensamiento lógico.

Por cierto, si estuviera diseñando el dispositivo como un circuito práctico utilizando la lógica de la serie 74xx, podría estar inclinado a usar un multiplexor de 32 entradas conectado al contador de intervalos y 16 salidas conectadas al contador de 5 minutos, activadas al comienzo de cada intervalo de 5 minutos. Una señal recibida en la entrada del multiplexor actualmente seleccionado sonará el timbre y / o reiniciará el contador de 5 minutos y avanzará el contador de intervalo. Si el contador se ajusta sin que aparezca una señal en la entrada del multiplexor, el contador de intervalos avanzará sin que suene el timbre. Tenga en cuenta que cada entrada del multiplexor solo tendrá una salida conectada, por lo que no habrá necesidad de bloquear diodos.

    
respondido por el supercat

Lea otras preguntas en las etiquetas