6 votos

¿Cómo activar ATmega cada 6 horas?

La junta que se hace con Atmega funciona a batería, se debe encender cada 6 horas y registro de algunos datos, a continuación, volver a un sueño profundo para ahorrar el consumo de la batería. Atmega32 se utiliza y no Atiny debido a la complejidad de las tareas y los sensores conectados al circuito.

Lo que he encontrado hasta ahora, es que me puede hacer un seguimiento de la hora con un RTC IC.

He leído las hojas de datos de algunos RTC IC pero no proporciona ningún tipo de capacidad como la generación de una señal para la Atmega exterior de interrumpir a intervalos específicos, por lo que se puede despertar de un sueño profundo. (Algo similar a cron-tarea en los sistemas *nix es necesario, si usted está familiarizado con ella.)

Y, por supuesto, términos de búsqueda como "Atmega tarea programada" y por igual, no traen nada.

¿Cómo puedo eficiente (en términos de consumo de energía) wake Atmega desde el sueño profundo periódicamente?

4voto

Karthik Puntos 66

Puede utilizar el temporizador de vigilancia para emitir una interrupción en lugar de resetear el chip. El chip se activará incluso desde el modo de sueño más profundo en la interrupción de la vigilancia.

Tienes que configurar el prescaler más grande para el temporizador de vigilancia (8 segundos) y cuenta las interrupciones. Si el contador no ha aún alcanzado la cantidad predefinida, inmediatamente volver a dormir, de lo contrario, ejecutar código de registro.

3voto

s.victor Puntos 28

Estoy trabajando en un proyecto similar, que opera una vez cada hora durante unos 15 segundos, y duerme el resto del tiempo. En un esfuerzo para ahorrar energía de la batería (el dispositivo se implementa en el campo por un promedio de 6 meses a un tiempo), el uso de WDT interrumpe era poco práctico debido a que constantemente contando interrumpe fue un gran consumo de batería.

Mi sistema utiliza un Microchip MCP7940M RTC, que tiene una multifunción pin, que le permite conectarse directamente a la interrupción de hardware. El chip se comunica con el procesador mediante I2C.

El único problema es que la salida de Alarma, lo que daría lugar a la interrupción, sólo se pueden establecer para minuciosamente, cada hora, diario, semanal, mensual o anual. Para llegar a cada seis horas, usted todavía tiene que contar las interrupciones, pero el consumo de energía sería significativamente menor debido a que usted puede poner el dispositivo a dormir entre las interrupciones.

1voto

user1587329 Puntos 1

Algunos ECA tiene esta función y algunos no.

El popular DS1307 no mientras que hace del un poco más caro DS3234 . El DS3234 tiene "dos alarmas programables de tiempo de día" que pueden conectarse a los pines de interrupción de Arduino para despertar su uController.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X