Temporizador de cuenta regresiva de 5 días con indicadores LED

-2

Básicamente, me gustaría hacer un temporizador que cuente de 1 a 5 días, con cada día representado como un LED. Debe haber un solo botón que, cada vez que se presione, el temporizador suba un día e indique que al iluminar el LED que representa ese Día, luego realice una cuenta regresiva a 0 días desde allí. Los LED solo se iluminarían en presencia de luz, por lo que requeriría un sensor de luz. También debe funcionar con pilas.

Si alguien pudiera proporcionar una hoja de ruta de alto nivel, o incluso algo más específico, se lo agradecería enormemente.

    
pregunta Allen Gingrich

2 respuestas

3

Si elige ir a la ruta del microcontrolador, el circuito es bastante simple:

Elegíusarun PIC16F676 , pero cualquier procesador pequeño funcionaría. Viene en un paquete DIP de 14 pines fácil de usar.

Este circuito está bastante completo, excepto por un encabezado para programar el chip a través de un PICkit 3 o equivalente y la fuente de alimentación de 5V.

El firmware debería ser bastante simple; configure el µC para que funcione lo más lento posible para ahorrar energía usando el reloj de 32 kHz. Configure una interrupción de un segundo y, dentro del ISR, incremente un contador de 32 bits. Si llega a 86,400, disminuya el contador de días si es mayor que cero y restablezca el contador de segundos a 0.

También dentro del ISR, encienda brevemente el amplificador operacional usando el pin de salida RC5 (usado para conservar energía, en lugar de dejar el op-amp encendido todo el tiempo). Verifique si el fotodiodo está detectando luz o no, y encienda el LED apropiado en función de si hay luz o no. Apaga el amplificador operacional.

No desea restringir el escaneo de los botones pulsadores al ISR de una vez por segundo, ya que esto proporcionaría poca capacidad de respuesta; tenga en cuenta que los puse a ambos en el Puerto A, lo que significa que puede usar la función IOC (interrupción al cambiar) del µC. Tendrá que definir un segundo ISR para manejar eso. Cuando vea que se presiona un botón, espere 50 ms y vuelva a verificar (software debouncing) y, si aún se presiona, aumente el contador de días si es menos de cinco.

    
respondido por el tcrosley
1

Aquí hay uno en hardware que simula decentemente, y aquí hay una descripción general, en lugar de una descripción detallada del circuito de cómo se supone que funciona:

V6, en la esquina inferior izquierda, es un oscilador de 1 Hz (un par de dólares de DigiKey) y U1 y U28 en la parte superior izquierda son dos contadores de ondulación de 12 bits en cascada para que cuenten hasta 86400, número de segundos en un día.

Sin LED calientes en la cola, el contador se inhibirá y se mantendrá restablecido por el cero en U8Q8,

La cola comprende U3 y U4, dos registros de desplazamiento universales bidireccionales de cuatro bits en cascada, y U2, U5, U6, U7 y U8; todos los inversores, y todos utilizados para controlar los LED sin cargar las salidas de U3 y U4.

U3 y U4 se usan como una pila LIFO, ya que la entrada serie de cambio a la derecha está conectada a Vcc, cuando se presiona el botón, se empuja una lógica en la pila y se enciende el LED "día 1" si la cola estaba previamente vacía.

Si no fue así, empujará a todos los que están en la cola más arriba en la pila, hasta que se llene, y cuando eso suceda, U23 y U24 informarán a U22 que la cola está llena y matará el botón pulsador ingrese al sistema hasta que el contador de días cuente el día hasta cuatro o menos.

Una vez que se suelta el botón pulsador, el contador de días de reinicio funciona al contar los pulsos de reloj de un segundo hasta que llega a 86400 (15180 hex) y, cuando llega allí, U27 y U29 descodificarán la cuenta y enviarán un pulsa a la cola que hace que se desplace hacia la izquierda. Dado que la entrada en serie de la palanca de cambios a la izquierda está cableada a cero voltios y la cola se eliminó antes, la salida del decodificador desplazará el contenido de la cola un bit hacia la izquierda, lo que apagará el LED más significativo.

Tenga en cuenta que en cualquier momento en que la cola no esté llena, al presionar el botón se restablecerá el contador de días y se empujará la pila, se encenderá otro LED y comenzará nuevamente la secuencia de tiempo.

Eso significa que, por ejemplo, si el LED 4 estaba a solo un segundo de la cuenta regresiva a cero, cuando se presiona el botón, el LED 5 se encenderá, el tiempo de espera del LED 4 se cancelará y el nuevo tiempo de espera se establecerá en un día para cada LED, por un nuevo total de cinco días.

Lo que está en la parte superior media es un muxer de enganche que se utiliza para seleccionar entre el botón pulsador como el reloj de cambio a la derecha o el temporizador como el reloj de cambio a la izquierda.

El circuito a la derecha del centro inferior es un comparador de voltaje con una referencia a bordo, y funciona apagando todos los LED iluminados cuando la noche llega sin interferir con la función del temporizador.

Soloparasonrisas,aquíhayunafotodelcircuitoqueuséparasimulareltemporizadoryobtenerungráficodesusalida.Agreguéunasegundasecuenciadepulsadoresycambiéladuracióndeltiempodeesperaylafrecuenciaderelojparapoderveralgoconveniente,peroapartedequeamboscircuitossonidénticosy aquí hay un enlace a los archivos que necesitarás si quieres jugar con el circuito.

Simplemente descárguelos todos en la misma carpeta y haga clic izquierdo en el archivo .asc para iniciar LTspice y abrir el editor de esquemas.

    
respondido por el EM Fields

Lea otras preguntas en las etiquetas