¿Cómo reducir la potencia en la configuración barebone de atmega328p?

Cada 15 minutos, los datos del sensor ultrasónico se enviarán al receptor mediante nRF24L01. Estoy usando atmega328P con batería AAA*3 y debería funcionar al menos 15 días. ¿Puede alguien sugerirme cómo reducir el consumo de energía, excepto el tiempo de lectura de datos del sensor? Mencioné varios blogs, usan el modo de suspensión profunda, pero necesito despertarlo cada 15 minutos. No puedo usar el temporizador de vigilancia ya que solo tiene 8 segundos. Si uso un RTC externo para interrumpirlo, se agregó un costo en el producto.

Gracias de antemano :)

Respuestas (2)

¿Has considerado otro microcontrolador? El AVR no es precisamente el de menor potencia del mercado. También hay XLP PIC y MSP430 (el MSP430 también es de 16 bits).

También debe verificar el presupuesto de energía de su sensor; asegúrese de apagar todo lo que no necesita mientras no duerme (el circuito analógico de ultrasonido absorbe una gran cantidad de miliamperios en modo de espera si no está apagado); verifique también el consumo de energía de la radio, tal vez olvidó algún comando de espera (¡lo olvido, constantemente!)

La configuración de conversión de energía también es muy importante. ¿Qué estás usando para regular la energía de tus baterías?

dado que atmega328p tiene tolerancia entre 1.8v a 5.5vi, no prefiera ningún regulador donde el voltaje de la batería sea de 4.5v (AAA * 3).
MSP430 puede implementar su propio RTC con un cristal de 32.768kHz y un temporizador interno, despertándose tan raramente como desee. Mi reloj se activa una vez por minuto y funciona con aproximadamente 0,8 uA (¡un poco mejor que 70 uA!) con la pantalla apagada. Esperaría que pudieras hacer algo similar con el AVR y un cristal de reloj y bajar a unos pocos uA, pero no lo he intentado.

Puede usar el temporizador de vigilancia para dormir durante 15 minutos entrando en el modo de suspensión profunda justo después de despertarse tantas veces como sea necesario para alcanzar los 15 minutos. Puede realizar un seguimiento de cuántos ciclos de 8 segundos ha dormido con una variable. El contenido del sram del chip se conserva durante el sueño.

Gracias Señor. Lo intenté y reduje la corriente a 70 microamperios !!!!!!!!!!!. Usé uno de la biblioteca, haciendo las mismas cosas que dijiste.
Otra cosa que podría ayudar a reducir aún más el consumo de energía es (si no lo está haciendo ya) hacer lo siguiente antes de dormir su avr: - Desactive el comparador analógico: ACSR = (1 << ACD); - Deshabilitar ADC: ADCSRA &= ~(1 << ADEN); - Deshabilitar un montón de periféricos: power_all_disable(); (consulte nongnu.org/avr-libc/user-manual/group__avr__power.html para obtener más detalles) recuerde habilitar lo que pueda necesitar después de despertarse (y deshabilitarlo nuevamente antes de irse a dormir). Este documento ha sido muy informativo para mí: gammon.com.au/power