Circuito temporizador de cuenta regresiva de 6 meses

8

Necesito diseñar un circuito de temporización. Después de una duración de 6 meses, debe encenderse un LED. El LED se puede apagar con solo presionar un botón y la cuenta regresiva de 6 meses debe comenzar nuevamente. Alguien tiene alguna idea de por dónde empezaría? ¿Es capaz un temporizador 555 de hacer algo durante un tiempo de esta duración o necesitaría algo más? Cualquier ayuda sería muy apreciada.

[agregado] se utilizará como recordatorio para cambiar un filtro de agua, por lo que debe apagarse con una batería pequeña ... algo pequeño, fácil de configurar y con un bajo consumo de corriente también sería útil ... cualquier ayuda apreciada ... gracias para la entrada anterior ..


fuente
77
¿Tiene que ser portátil o estará conectado a un suministro de CA? Si es así, podría contar cruces de 60 (o 50) Hz, que son muy precisos a largo plazo.
tcrosley
1
No intente usar el suministro de CA: no puede contar con la energía encendida durante 6 meses seguidos sin tomar medidas extraordinarias.
Michael Kohne
1
He visto esta aplicación utilizada en filtros de agua para alertarlo cuando el filtro necesita ser reemplazado. Pueden funcionar durante muchos años sin tener que reemplazar una batería, así que supongo que pueden hacerlo con mucha facilidad.
Kellenjb
3
@ Vincent Conlon: ¿Qué precisión necesitas? En el ejemplo del filtro de agua, estoy seguro de que la precisión es horrible, pero no creo que a nadie le importe si te alertan una semana antes o después.
Kellenjb

Respuestas:

8

Según esta respuesta , creo que un 555 no funcionará. Necesitarías un condensador masivo y una resistencia enorme, y la precisión sería terrible.

Recomiendo usar el microcontrolador más simple de 8 bits. Tendría que manejar los números con cuidado, pero un PIC16F84A (o un Arduino, o muchos otros dispositivos similares) podrían hacerlo. Podría configurar un temporizador de 1 segundo y luego contar 15778463 vencimientos del temporizador, almacenando el conteo en una variable de 32 bits. (Para las variables de Arduino de 32 bits, consulte http://www.arduino.cc/en/Reference/Double )

pingswept
fuente
2
Um ... double? Incorrecto. Te refieres long, o preferiblemente int32_t.
Nick T
8
AH, tienes razón. Grosero, pero correcto.
pingswept
12
Um ... int32_t? Incorrecto. Te refieres a uint32_t, a menos que esperes que el tiempo retroceda también.
Toby Jaffey
1
@Nick, aunque técnicamente es cierto, la mayoría de las implementaciones de C en microcontroladores de 8 bits no siguen la promoción de tipo definido por ansi. A menudo solo usan el tipo más grande en la declaración.
Mark
1
Tenga en cuenta que sin un RTC o un oscilador externo, la precisión aquí será bastante horrible, especialmente durante un período de tiempo tan largo. ¡Y no olvide escribir periódicamente el conteo actual en EEPROM!
Nick Johnson el
6

En primer lugar, es un pequeño proyecto interesante, pero realmente estás usando la herramienta incorrecta. Esto es algo que se ha resuelto desde hace siglos utilizando una herramienta conocida como agenda.

agenda

Hagámoslo electrónicamente de todos modos, solo por diversión. No parece necesitar una precisión muy alta; no importará si el filtro se reemplaza un día antes o más tarde (un día en 6 meses es 0,5% de precisión). Tomo nota de que tiene que funcionar con una batería, por lo que tiene que ser realmente de baja potencia.

Voy a comenzar cambiando los requisitos . Desea un LED como indicador, pero su dispositivo tendría que estar presente de manera bastante destacada en la sala de estar si desea asegurarse de ver el LED encendido, incluso cuando parpadea. (Tengamos en cuenta que puede ser necesario el parpadeo para evitar que la batería se agote antes de que se note el LED; después de todo, el LED puede encenderse justo después de que te acuestes). Usaría
un timbre en lugar de un LED . Y para evitar que suene el timbre en el medio de la noche, necesitaremos un cronometraje preciso que también nos dirá la hora del día. Eso significa que un 555 está fuera, y tendremos que confiar en un microcontrolador. Un microcontrolador pequeño cuesta menos de 50 centavos, y funcionar con un cristal de 32.768 kHz no consume mucho (para un proyecto utilicé un MSP430F1101 que consumió menos de 4μA), y tiene precisión de minutos durante meses.
Pero eso significaría que debe tener cuidado con el momento en que inicia su temporizador, y eso no es muy fácil de usar.
Ingrese el receptor del reloj atómico . DCF77 en Europa y WWVB en Norteamérica transmiten el tiempo en pulsos de 1 segundo. El microcontrolador puede funcionar en un reloj RC interno (no tiene que ser tan preciso) y mantener la hora en función del código de tiempo recibido. Para ahorrar energía, puede hacer que el receptor del reloj atómico active el microcontrolador con cada pulso de 1 segundo, para que el controlador pueda actualizar la hora y la fecha, y volver a dormir. Podría programar el microcontrolador para que emita una señal a las 14:00 el primer sábado siguiente al tiempo de espera, por ejemplo.

Luego está la fuente de alimentación . La solución de microcontrolador necesita solo unos pocosμA, entonces una celda de litio CR3032 (buena para 500 mAh) puede durar varios años. Pero el tiempo entre eventos es tan largo que eventualmente la batería dejará de funcionar a la mitad de un período de 6 meses, y el tiempo de reemplazo del filtro pasará desapercibido.
Sugeriría un dispositivo alimentado por la red eléctrica , utilizando un pequeño transformador; Tengo un montón de transformadores de 6 V y 0,35 VA para este tipo de productos pequeños. Dado que un período prolongado como 6 meses no garantiza que no habrá un corte de energía, necesitará una batería / condensador de respaldo . Aquí en Bélgica tenemos menos de 1 corte de energía en 2 años en promedio, el más largo que experimenté duró 2 horas. No usaría una batería, al menos no una celda primaria. Una recargable servirá, pero usemos un supercap en su lugar. A 0.μUn dispositivo funcionando por más de 24 horas. El microcontrolador puede monitorear la alimentación de la red, de modo que, si el tiempo de espera de 6 meses ocurriera durante un corte de energía, el microcontrolador puede posponer la señal hasta que se restablezca la energía.

Para una aplicación que requiere tan poca interacción del usuario, sigue siendo útil tener algún tipo de comentarios . Puede parpadear un LED una vez por segundo para indicar que el temporizador está funcionando, y si desea hacerlo una versión de lujo podría mostrar el recuento de días restante en una pantalla LCD o LED de tres dígitos.


editar (re comentario de Ben)
En el pasado usé estos pequeños módulos receptores DCF77 de Conrad .

módulo dcf77

Vivo en Europa, por lo tanto DCF77, para WWVB (Norteamérica) existen módulos similares .
Las conexiones son simplemente fuente de alimentación (1.2V a 15V) y 2 salidas DCF77, una no invertida, una invertida. Las salidas son de colector abierto, por lo que con el pull-up adecuado para cualquier voltaje en el que funcione el microcontrolador.


Otras lecturas:

stevenvh
fuente
Buen enfoque, pero hay una gran omisión evidente en lo que respecta al hardware que usaría para recibir las transmisiones de marca de tiempo.
Ben Voigt
@Ben - lo suficientemente justo. Agregado a mi respuesta.
stevenvh
Su enlace para "módulos similares" está muerto. ¿Podría proporcionar un número de modelo y / o actualizar su enlace?
bcsteeve
6

Arduino (u otro microcontrolador) con un IC de reloj en tiempo real súper preciso DS3231 . Cuando se presiona el botón, la hora y la fecha se almacenan en la memoria: el MCU puede recorrer la fecha y la hora y apagarse cuando esté listo; o cuando se presiona el botón, se reinicia, etc.

stevenvh
fuente
1
+1 RTC seguro. DS3234 si prefiere usar SPI en lugar de I2C.
Craig
Ese es un gran chip. Deje que haga un seguimiento de todos los tediosos recuentos y tiempos para usted. Mucho más fácil que contar pulsos y hacer todas las conversiones a tiempo real.
captncraig
2 ppm seguramente es bueno, pero exagerado. Aquí funcionará un cristal estándar de 20 ppm: no creo que sea importante el minuto exacto para cambiar el filtro de agua (siempre y cuando no esté en medio de la noche).
stevenvh
4

La parte difícil sería la precisión en un intervalo de tiempo tan largo.

Es posible que desee considerar un oscilador de cristal combinado con una cascada de contadores binarios. Consulte la hoja de datos 4060 para ver ejemplos.

Mouviciel
fuente
4

Creo que debería usar un temporizador 555 para medir el tiempo durante intervalos de 16 minutos, y luego alimentarlo en un circuito contador de algún tipo para dividirlo. Un contador de 14 bits haría el intervalo de aproximadamente 6,06 meses.

Thomas O
fuente
3
No debe usar un 555 con un período de 16 minutos; es mejor conectar en cascada dos contadores y ejecutar el 555 a una frecuencia más sensata (kHz más o menos). Es mejor no usar un 555 si te importa mucho la tolerancia.
Nick T
Un CMOS 555 funcionará fácilmente durante horas. El OP parecía sugerir que la precisión no era un problema.
Thomas O
Incluso si la precisión no fuera un problema, un 555 que se ejecuta en un período de tiempo tan largo será tan inexacto que lo hará esencialmente un tiempo arbitrario. Me gusta la solución MSP430 mucho mejor, barata y el cristal suministrado será razonablemente preciso durante el tiempo requerido.
ttt