¿Una vez a la semana pulso de circuito pequeño para reloj lento?

Tengo un reloj (un reloj de cuarzo normal), que quiero que vaya muy despacio. Quiero que marque 60 veces al año.

Desconecté el chip interno y conecté un arduino para hacer el conteo, y cada 525948.76 segundos le dice al reloj que marque. Esto funciona bien, pero usar un arduino es excesivo.

¿Qué tan barato y simple podría hacer este dispositivo de "pulso cada 525948.76 segundos" que reemplazaría al arduino? No necesitaría ser un cronometrador tan preciso como un arduino.

(esta persona hizo lo mismo y explicó cómo http://www.cibomahto.com/2008/03/controlling-a-clock-with-an-arduino/ )

¿Qué tan preciso necesitas que sea esto? Hay circuitos temporizadores muy simples, pero a la larga, pueden no ser muy precisos. Una opción podría ser hacer un oscilador de cristal y usar una corteza de cuarzo más algunos contadores para hacer lo que quieras.
Lo suficientemente preciso como para que en un año el segundero del reloj se haya movido 360 grados.
Quiero decir, ¿qué tan exacto quieres que sea el año? ¿Como es 31 536 000.0000000000 segundos o serían importantes unos pocos cientos/decenas de segundos hacia arriba o hacia abajo?
Unos pocos cientos de segundos importarían mucho.
Bueno, si importan, entonces no creo que puedas mejorar las cosas de una manera más simple de lo que son ahora. Probablemente, la mejor opción sería tratar de optimizar el propio Arduino y pasar a un microcontrolador menos capaz y más barato mientras se diseña cuidadosamente su sistema de reloj, para que sea lo más preciso posible.
Lo siento, unos pocos cientos de segundos NO importarían tanto.
Supongo que necesitará algo que funcione con una batería durante más de un año, ya que no podrá 'configurar' el reloj a mitad de camino, ¿verdad?

Respuestas (3)

Para una función de temporización de alta precisión, considere usar un reloj de tiempo real con un oscilador de cristal compensado por temperatura (TCXO) integrado. Un ejemplo es el Maxim DS3231 RTC con TCXO, disponible en eBay por menos de $3 el par, incluido el envío internacional.

Esto le brinda algunas ventajas sobre los osciladores de cristal utilizados en las placas Arduino:

  • Precisión de 3,5 partes por millón, es decir, 110,45 segundos de deriva al año.
  • Simplicidad de contar el tiempo: puede configurar la parte para que emita una onda cuadrada de 1024 Hz, con una precisión de 0,977 milisegundos para los tictacs de su reloj, o una interrupción de una vez por segundo si no necesita la precisión del segundo decimal del tictac mencionada en el pregunta
  • El calendario incorporado permite una recalibración de la hora de inicio cada año, incluidos los años bisiestos

Para interactuar con un RTC de este tipo, puede usar un microcontrolador mínimo con un oscilador RC incorporado, como la familia ATtiny.

Por lo tanto, el dispositivo necesitaría simplemente la batería, el microcontrolador mínimo, el chip RTC, algunas resistencias y algunos condensadores de desacoplamiento, no se me ocurre mucho más, lo que lo hace económico y realmente simple de construir.

En una PCB grabada en casa, todo el dispositivo podría construirse en menos de una pulgada cuadrada, por quizás $ 6 o más en unidades individuales, funcionará con una batería de un solo botón durante años y brindará una precisión mucho más allá de lo que cualquier Arduino puede hacer. De la caja. Un TCXO por sí solo costaría tanto o más en unidades individuales.

Si elige construir unas pocas docenas de estos, el costo podría reducirse a menos de $ 3 cada uno, incluidas las PCB grabadas profesionalmente con una bonita serigrafía y una capa resistente.

Código :

  • El microcontrolador usa I2C para configurar el RTC para una salida de 1 Hz o 1024 Hz
  • Un pin habilitado para interrupción en la MCU se activa en cada pulso establecido anteriormente y cuenta la duración: el microcontrolador se establece en modo de suspensión de baja potencia el resto del tiempo.
  • Al lograr un conteo de 525948.76 segundos, o 525949 segundos si no es quisquilloso, el microcontrolador pulsa su reloj de cuarzo externo.
  • Una vez al mes, o anualmente, el microcontrolador recupera la fecha y la hora reales del RTC y corrige cualquier desviación debido al redondeo de 525949 segundos.

Para la estabilidad de frecuencia a largo plazo, la red eléctrica es bastante buena. Proporciona una base de tiempo de 60 Hz que todavía se usa para muchos relojes. Este enlace de Wikipedia analiza cómo se ajusta la frecuencia de la línea eléctrica para mantener una constante de 50/60 Hz.

El principal problema son los cortes de energía, pero al menos en las áreas metropolitanas de EE. UU., estos son raros. Si está dispuesto a aceptar la pequeña posibilidad de que se corte la energía en algún momento, entonces un transformador de 120 V/5 V, un rectificador y algunos chips contadores probablemente serán suficientes. El transformador y el rectificador proporcionarán un pulso de 60 Hz alrededor de 5 voltios. En lugar de chips de contador, probablemente optaría por un pequeño microcontrolador para tomar esos pulsos y hacer los cálculos para pulsar una vez por semana. Sin embargo, esto también se puede hacer con lógica discreta.

Puede obtener un microcontrolador pequeño con un reloj de tiempo real (RTC) de hardware. La mayoría de ellos te permiten programar una alarma. Así que configure la alarma para 525948.76 segundos en el futuro y ponga el núcleo del procesador en reposo. Cuando la hora del RTC coincida con la hora de la alarma, el RTC generará una interrupción y activará el procesador. En ese punto, su código se ejecuta de nuevo. Avance las manecillas del reloj, configure la alarma RTC en 525948,76 segundos en el futuro y vuelva a poner el procesador en reposo. (O calcule cuántos son 525948,76 segundos desde la medianoche del 1 de enero y reinicie el reloj/calendario a la medianoche del 1 de enero cada vez y use la misma hora de alarma).

Muchos, muchos, muchos micros tienen periféricos de hardware RTC. Desafortunadamente, la búsqueda paramétrica en el sitio web de Microchip no parece permitirme filtrar por la presencia de un RTC. (Mi sospecha visceral es que es probable que Microchip tenga la parte más barata con un RTC de hardware.

Microchip también tiene una nota de aplicación sobre cómo hacer lo mismo usando Timer1 en chips que no tienen un módulo RTC: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011057 . Eso es probablemente tan "barato y simple" como es probable que encuentre. Gasta algunos centavos más en un cristal con tanta precisión como puedas encontrar. +/- 10 ppm son 315 segundos/año, creo, o un poco más de 5 minutos. Si mantiene su reloj a temperatura ambiente, es muy probable que vea un mejor rendimiento que eso.

¿Qué tan preciso/inexacto es el arduino?
@user1081813 Las placas Arduino más antiguas, que usan microcontroladores AVR (por ejemplo, ATmega238) y un cristal económico, no son muy precisas en absoluto. El Arduino Due más nuevo, con el microcontrolador ARM y un cristal algo mejor, es más preciso. La restricción es la precisión del cristal, no el microcontrolador. Lo que necesita es un chip de reloj de cesio, o al menos un TCXO horneado en lugar del cristal, para una sincronización relativamente precisa.