Tutorial Arduino ultra bajo consumo (90uA)
En esta breve entrada vamos a ver paso a paso como reducir el consumo de la placa Arduino Nano desde los 18mA que consume en funcionamiento normal, hasta 90uA (micro-amperios) en modo bajo consumo.
Comprar Arduino Nano en Amazon
Si eres aficionado al mundo DIY y Arduino, tarde o temprano comenzarás a trabajar en algún proyecto que necesite de una batería, como puede ser una estación meteorología, o una boya marina. En este tipo de proyectos, uno de los puntos clave mas importantes es la reducción de consumo energético, y que la batería mas pequeña y barata posible nos dure el máximo tiempo. Por desgracia para nosotros, la placa Arduino Nano consume mucha corriente sin prácticamente ejecutar ni una sola línea de código, solo con alimentarlo. En esta entrada vamos a ver como paliar esto utilizando utilizando solucionar software y soluciones hardware.
¿Cuánto consume la placa Arduino Nano?
Sin hacer nada, solo con alimentar la placa Arduino y ejecutar un sketch vacío, el consumo de corriente alcanza los 19mA, mucha corriente para tenerlo activo de forma continua y tirando de una batería. Alimentado desde el pin 5V:
Podríamos alimentar la placa desde el pin Vin, pero recordad que para ello la tensión de entrada tiene que ser superior a 7V para que el regulador funcione dentro del rango de la hoja de especificaciones.
Librería LowPower.h
La librería LowPower.h permite activar el modo de bajo consumo de la placa Arduino y mantener apagados los convertidores analógico a digital, y el circuito BOD (o Brown Out Detection) durante el tiempo que queramos. Una vez instalada la librería, el código necesario es extremadamente simple. En este ejemplo, pasamos a bajo consumo durante 8 segundos, y después volvemos a despertar durante otros 8 segundos:
#include "LowPower.h"
void setup() {}
void loop() {
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
delay(8000);
}
Mientras la placa Arduino está activa tenemos un consumo de 18mA como hemos visto arriba, pero en cuanto entra en modo bajo consumo, el consumo cae hasta 6.09mA, ¡3 veces menos!
El modo bajo consumo ‘duerme’ la placa Arduino, por lo que no se podrá utilizar para realizar ninguna operación mientras permanezca en este estado. Puede ser muy útil para aplicaciones donde queramos tomar muestras a intervalos, como en una estación meteorología, o una boya marina, donde tomamos muestras de los sensores cada minuto, y el resto del tiempo el sistema está en modo bajo consumo.
Quitar el LED de alimentación
Solo con alimentar la placa Arduino veréis un led (PWR Green) que se enciende automáticamente, y que es un monstruo devorador de energía. Haciendo un cálculo rápido, este led consume unos 4mA de forma continua. El siguiente paso es des-soldar o bien el led, o bien la resistencia que tiene asociada. Os dejo una imagen obtenida de los esquemas oficiales de la placa Arduino Nano v3.2 donde se ve como el led se alimenta de 5V a través de una resistencia de 1kOhm:
Una vez eliminado el led, el consumo de la placa Arduino desciende en más de 3.5mA, de los 18mA que hemos visto mas arriba, a 14.99mA. Puede parecer poco, pero solo con esto hemos reducir el consumo en casi un 20%, lo que es mucho ahorro:
Si analizamos el consumo en modo bajo consumo, utilizando la librería LowPower.h, el consumo cae hasta unos increíbles 3.06mA:
Quitar el regulador de tensión
Por último, para minimizar al máximo el consumo energético, podemos des-soldar el regulador de tensión que incorporan todas las placas Arduino. Este regulador genera los 5V necesarios para alimentar la placa cuando utilizamos el pin Vin, que admite tensiones de entrada del rango de 7V-12V aproximadamente. Si vamos a trabajar con 5V constantes, utilizando un DC/DC por ejemplo, este regulador es completamente prescindible, y podemos alimentar la placa directamente desde 5V:
Eliminando este componentes (regulador LM1117-5.0), nos podemos ahorrar entre 5mA y 10mA según la hoja de datos del fabricante, aunque el ahorro real que he obtenido yo ha sido menor.
Esta opción es algo mas complicada que las dos anteriores, debido a que este componente está soldado en varios puntos, lo que hace que eliminarlo sea mas bastante complejo si no tenemos una pistola de calor o una herramienta mas especializada.
Una vez eliminado el regulador, el consumo cae otros 1.8mA, desde los 14.99mA visto en el apartado anterior, hasta los 13.22mA que muestro a continuación:
En modo bajo consumo, utilizando la librería LowPower.h, ¡el consumo cae hasta 0.09mA (90uA)! Un consumo realmente bajo y que nos permitirá utilizar la placa desde una batería durante días:
Tabla resumen
Con Arduino activo:
Led | Regulador | Consumo |
Sin eliminar | Sin eliminar | 18.65mA |
Eliminado | Sin eliminar | 14.99mA |
Eliminado | Eliminado | 13.22mA |
Con Arduino en modo bajo consumo utilizando la librería LowPower.h:
Led | Regulador | Consumo |
Sin eliminar | Sin eliminar | 6.09mA |
Eliminado | Sin eliminar | 3.06mA |
Eliminado | Eliminado | ¡¡0.09mA!! |
También te podría interesar
¡NUEVO curso de diseño PCB ! Controlador de vuelo para drones 100% Arduino
NUEVO curso de diseño de tarjetas electrónicas (PCB) para principiantes, donde aprendemos a diseñar PCB complejos que cubran las necesidades de vuestros proyectos DIY. Para llegar a este objetivo, vamos a diseñar desde cero un PCB controlador de vuelo para drones basado 100% en Arduino, donde como punto final enviaremos el PCB a fabricar para recibirlo en casa completamente montado y listo para ser programado.
Más INFORMACIÓN sobre el CURSO
Indice ‘Boya Iridium con Arduino‘ | Proyecto Elcano:
- Introducción
- Análisis de concepto y costes
- Diseño electrónica (esquemas y PCB)
- Montaje hardware (próximamente)
- Programación en Arduino (próximamente)
- Lanzamiento y seguimiento (próximamente)
Índice ‘Drone con Arduino’
- Conceptos generales sobre drones.
- Material necesario y montaje de los componentes hardware.
- Mando RC y receptor. Programación en Arduino (código).
- MPU6050 y su programación en Arduino (código).
- Batería LiPo (código).
- Control de estabilidad y PID.
- Motores, ESC y su programación en Arduino (código).
- Calibración de hélices y motores (código).
- Software completo y esquema detallado (código).
- Probando el Software completo antes de volar.
- Como leer variables de Arduino en Matlab (código).
muchísimas gracias me ha venido genial, saludos