Nota: quería señalar que, aunque mi respuesta fue aceptada, el lector (usted) realmente debería leer la respuesta de Anindo primero si realmente desea ahorrar energía con cualquier placa Arduino. Una vez que aborde esos elementos en su diseño, debería leer mi respuesta y preocuparse por cómo configurar la MCU en modo de bajo consumo.
Dicho esto, hay varias técnicas para hacer que un Arduino ahorre energía. Enumeraré algunos y luego te señalaré una página que los explica con más detalle.
Si bien el controlador no está haciendo nada importante (entre una lectura de un sensor y la siguiente, por ejemplo), puede poner el controlador en uno de los modos de suspensión a continuación, con el comando set_sleep_mode (SLEEP_MODE_PWR_DOWN)
. Al lado de cada modo está el consumo de energía aproximado de cada modo.
- SLEEP_MODE_IDLE: 15 mA
- SLEEP_MODE_ADC: 6.5 mA
- SLEEP_MODE_PWR_SAVE: 1.62 mA
- SLEEP_MODE_EXT_STANDBY: 1.62 mA
- SLEEP_MODE_STANDBY: 0.84 mA
- SLEEP_MODE_PWR_DOWN: 0.36 mA
Desactive la detección de caída de voltaje (el circuito que apaga el controlador cuando se detecta bajo voltaje).
Apague ADC (conversión de analógico a digital)
Usa el reloj interno
Luego, cuando pone el controlador en suspensión, necesita usar uno o más mecanismos a continuación para activar el controlador y hacer algo con él:
Este es un resumen que hice de ...
Ese artículo se aplica principalmente a ATmega328P, pero la técnica también se aplica a otros controladores compatibles con Arduino. Como TheDoctor dijo bien, tendrá que verificar el datashet para asegurarse de que su controlador admita cualquiera de esas técnicas y cómo hacerlo con mayor precisión.
Siendo realistas, el mayor desperdicio de energía en una placa Arduino es el regulador de voltaje lineal.
Mientras el microcontrolador de la placa, los LED o cualquier otro periférico consuman corriente, el regulador lineal desperdicia energía igual a
difference between supply and board voltage
xcurrent drawn
.Por lo tanto, una primera solución sería desconectar el LED indicador de alimentación de la placa y no utilizar ninguno de los otros LED en la medida de lo posible. En segundo lugar, suministre a la placa el voltaje más bajo posible que sea suficiente para alimentar el regulador de a bordo.
En los diseños originales, los reguladores de voltaje utilizados no cuentan con baja corriente de reposo. Esto significa que incluso sin nada que atraiga energía dentro de la placa, el regulador mismo desperdicia un poco de energía todo el tiempo que está encendido.
Una solución fácil es reemplazar el regulador de a bordo con un LDO (regulador lineal de baja caída) clasificado para una corriente de reposo extremadamente baja. Las búsquedas paramétricas en varios sitios de proveedores producirán posibles sustitutos.
Incluso con los pasos anteriores, la placa Arduino no proporciona un mecanismo para configurar el LDO en modo de bajo consumo, si el LDO elegido lo admite. Los diseños energéticamente eficientes generalmente usan un pin de "modo de reposo" en los reguladores de voltaje para ahorrar un poco de energía, no es una opción aquí.
Incluso con todos los modos y trucos posibles de ahorro de energía aplicados a nivel de microcontrolador, el Arduino simplemente no está diseñado para ser un dispositivo de ultra bajo consumo. Después de experimentar con varias aplicaciones no triviales, descubrí que lo mejor que se puede lograr de manera realista es un ahorro de energía del 10% al 30% dependiendo de la aplicación, ya que el regulador de voltaje y los LED consumirán el resto de todos modos.
fuente
Puede leer la hoja de datos de 200 páginas y luego meterse con algunos cambios y registros de bits confusos, pero recomiendo esta biblioteca: http://playground.arduino.cc/Code/Enerlib
Además, si está utilizando un Uno o cualquiera con un chip USB a serie, puede desactivarlo o eliminarlo.
fuente
Una vez que su proyecto esté funcionando y necesite implementarlo en un entorno de "producción", puede optar por reemplazar el Arduino con un simple ATMega328 o cualquiera de los chips de la familia ATTiny. Esto eliminará todos los comedores de poder en la placa Arduino que no necesita. Encontré:
Más información
Programar un ATtiny con Arduino
Archivos ATTiny para Arduino IDE
fuente