¿Cuáles son algunas formas simples de reducir el uso de energía de Arduino? [duplicar]

6

Para un proyecto rápido y sucio, ¿cuáles son algunas de las formas más sencillas de reducir el uso de energía de un Arduino ?

Imagina la siguiente configuración:

Un Arduino Nano típico, conectado a un par de DS18B20s y una de las mini pantallas OLED. La energía proviene de una batería de teléfono móvil enganchada a una placa TP4056, que luego funciona a una pequeña 0.9V > > Tablero de refuerzo de 5 V, ambos artículos comunes de eBay.

La idea es crear una plataforma básica, a la que se agregará lentamente funcionalidad adicional, como un enlace inalámbrico y el registro de datos. Por ahora, sin embargo, la situación es como se describe anteriormente.

El comienzo obvio sin duda sería eliminar los LEDS innecesarios, o al menos, enfrentar una resistencia adicional para hacerlos más débiles. Tal vez encontrar la forma de reducir el brillo de la pantalla OLED también sería un paso obvio, y ese LED verde junto al interruptor ON no es necesario ...

Pero más allá de esto, ¿qué pasos simples se podrían realizar en la codificación o en la carga del hardware podrían ayudar a que la batería gane más tiempo?

(Esta pregunta se relaciona con un nivel específico de entusiasta de sistemas integrados, a saber, el nivel intermedio, alguien que aún no tiene la confianza suficiente para sumergirse en las profundidades del lenguaje ensamblador AVR, sino más bien para alguien que ya comprende los conceptos básicos de cómo se combinan los dispositivos electrónicos y los dispositivos incorporados en un sistema (En otras palabras, yo ...). Hay diferencias en comparación con ¿Cómo puedo hacer que mi atmega328 funcione durante un año con baterías? y más específicamente a las acciones que prácticamente puede tomar.)

    
pregunta Hoets

2 respuestas

11

Mi primer paso sería identificar qué está usando la mayor parte de la potencia / corriente y abordar eso.

A menudo veo estas preguntas sobre cómo reducir el consumo de energía / aumentar la vida útil de la batería en este sitio. A menudo mencionan la solución general que ya enumeró y que se encuentra en otras respuestas.

Por ejemplo, estoy de acuerdo en que reducir la tensión de alimentación de un microcontrolador reduce el consumo de energía. Sin embargo, si la uC está mayormente en modo de reposo y solo está activa el 1% del tiempo, reducir la potencia consumida solo es relevante si la uC toma una parte significativa (por ejemplo, más del 20%) del presupuesto total de energía.

Si, por ejemplo, sus sensores de temperatura están encendidos continuamente a 1 mA, es decir, 2 mA en total al 100%. Compare eso con un uC que está activo el 1% del tiempo a 10 mA da un promedio de 1% * 10 mA = 0.1 mA, por lo tanto, 20 veces menos.

Entonces, la conclusión sería que ciclo de servicio los sensores de temperatura. Haga que el uC los encienda / apague (o su suministro, tal vez simplemente pueda suministrar el Vdd de los sensores de temperatura desde un pin de E / S en el uC). Incluso si los sensores de temperatura solo son estables después de tener un voltaje de suministro durante 5 segundos, eso aún sería de gran ayuda si realiza una medición de temperatura una vez por minuto.

Normalmente hago una tabla con el tiempo activo (en%, básicamente ese es el ciclo de trabajo), el consumo actual y la corriente promedio efectiva (que es simplemente el producto de esos dos). Eso me ayuda a identificar a dónde va la corriente / potencia y eso me dice cómo puedo mejorarla.

Con respecto al convertidor elevador: es posible que no lo necesite si todos los componentes también pueden funcionar con 3,5 - 4,2 V. El chip ATmega puede funcionar, incluso algunos a 1,8 V (es posible que tenga que cambiar la opción "Salida de batería") voltaje en la configuración de fusibles sin embargo). Algunos convertidores elevadores tienen una corriente de reposo baja (drenaje de corriente cuando la corriente a 5 V es cero) pero no todos lo hacen.

A la mayoría de los diseñadores de circuitos les gusta tener un voltaje de suministro estable, digamos 3.3 V. Sin embargo, ¡a la mayoría de los chips realmente no les importa! Mientras esté en su rango utilizable. Por supuesto, para cosas de alta precisión / bajo ruido pueden ser diferentes. Mi punto: no siempre se necesita una tensión de alimentación estable / regulada. Eliminar ese convertidor LDO / paso arriba puede ahorrar un poco de corriente.

    
respondido por el Bimpelrekkie
5

Reducir el voltaje. El ATmega puede funcionar a menos de 5V, o 3.3V. Cuanto menos necesite aumentar el voltaje, menor será su consumo de energía. Pero también debe observar la eficiencia del regulador en diferentes entradas a voltajes de salida.

Eliminar los leds. La pantalla OLED puede ser lo suficientemente conservadora de energía como para no necesitar cambios.

Usa estados de sueño. Ponga el dispositivo en el estado de reposo más bajo que pueda con la mayor frecuencia posible.

Elimine el código Arduino, ya que no es exactamente ideal para esto, use el código directo para el microcontrolador. Todas esas bibliotecas agregan una sobrecarga que aumenta su tiempo y capacidad de procesamiento.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas