Una estación meteorológica que corre con batería no puede darse el lujo de gastar 100 mA sin hacer nada. Sin embargo, un Arduino Uno "de fábrica", en reposo, consume casi eso: 98,43 mA. La buena noticia es que con tres medidas de hardware y una de software puedes bajar ese consumo hasta un 89%. En esta guía vas a ver, con mediciones reales, cómo un Arduino Pro Mini pasa de decenas de miliamperes a apenas 1,58 mA.
Al terminar vas a saber elegir la placa correcta para un proyecto a batería, reducir la velocidad de reloj y el voltaje de operación, y activar el modo de bajo consumo por software para exprimir cada mAh.

Las cuatro técnicas que aplicamos son: usar un microcontrolador más chico (hardware), reducir la velocidad de reloj (hardware), reducir el voltaje de operación (hardware) y usar el modo de bajo consumo de la librería Low Power (software). Todas las mediciones se hicieron con un multímetro USB, en reposo, tras cargar un sketch vacío.

Técnica 1. Elige la placa más chica
La primera regla es simple: cada componente sobre la PCB gasta energía. Un Arduino Uno tiene regulador, chip USB y LEDs que un Pro Mini no. Por eso, para un proyecto a batería, usa la placa más pequeña que cumpla con lo que necesitas.
Un ejemplo concreto: si tu estación meteorológica necesita 5 entradas digitales y 1 analógica, no uses un Arduino Uno (98,43 mA). Un Arduino Nano (22,05 mA) o, mejor aún, un Arduino Pro Mini (14,62 mA) hacen lo mismo con una fracción del consumo. Solo elegir bien la placa ya te ahorra más del 80% respecto del Uno.
Técnica 2. Reduce la velocidad de reloj
El reloj define cuántas operaciones por segundo ejecuta el micro. Por defecto la mayoría de los Arduino corre a 16 MHz, pero rara vez necesitas toda esa velocidad. Bajarlo a 8 MHz reduce el consumo.

Ojo con un efecto contraintuitivo: a menor reloj, el sketch tarda más en ejecutarse. Si tu programa corre 4 s a 16 MHz y luego duerme 10 s, a 8 MHz esos mismos cálculos tardan 8 s y el tiempo de sueño baja a 6 s. En casos límite, reducir el reloj puede incluso subir el consumo total. Conviene medir tu caso.
Para bajar el reloj se usa el prescaler del sistema mediante los bits CLKPS, con un procedimiento de escritura en dos pasos (hay un mecanismo de bloqueo que lo protege):
void setup() {
CLKPR = 0x80; // (1000 0000) enable change in clock frequency
CLKPR = 0x01; // (0000 0001) use clock division factor 2 to reduce the frequency from 16 MHz to 8 MHz
}
void loop() {
// put your main code here, to run repeatedly:
}
En la práctica, bajar de 16 a 8 MHz reduce el consumo en promedio un 29%, aunque depende mucho de cada placa: el Uno baja un 56,56% (de 98,43 a 42,76 mA), mientras que el Mega apenas un 15,62%.
Técnica 3. Reduce el voltaje de operación
La potencia es P = V × I, así que bajar el voltaje baja el consumo. Pero para reducir el voltaje también debes reducir el reloj (la relación entre voltaje mínimo y velocidad está en la hoja de datos del ATmega). Para las pruebas se conecta la fuente directamente al pin de 3,3 V, bajando de 9 V a 3,3 V y puenteando el regulador interno.

Esta es la medida de hardware con más impacto: en promedio reduce el voltaje más de un 70% combinada con el reloj. El Arduino Nano baja su consumo un 84,54% y el Mega un 77,13%.
Bonus para sistemas a batería: al reducir el voltaje mínimo de operación del micro, la batería puede descargarse más antes de llegar a ese umbral. Es decir, no solo consumes menos: además aprovechas un rango más amplio de la batería, extendiendo la autonomía por partida doble.
Técnica 4. Activa el modo de bajo consumo (software)
El paso final es dormir el micro por software con la librería Low Power de rocketscream. El modo de bajo consumo desactiva timers, comunicación SPI/UART, el oscilador externo, la interfaz I2C, el watchdog y las interrupciones externas mientras el micro no trabaja. Opcionalmente también apaga el conversor analógico digital (ADC) y el detector de brown out (BOD).
La librería se instala manualmente: descarga el ZIP desde el GitHub de rocketscream, descomprime en la carpeta de librerías y quita el número de versión del nombre. El código base es este (comenta las dos líneas del reloj si mides a 9 V):
#include "LowPower.h"
void setup()
{
CLKPR = 0x80; // (1000 0000) enable change in clock frequency
CLKPR = 0x01; // (0000 0001) use clock division factor 2 to reduce the frequency from 16 MHz to 8 MHz
}
void loop()
{
delay(4000);
LowPower.powerDown(SLEEP_2S, ADC_OFF, BOD_OFF);
}
Aquí el micro trabaja 4 s y luego duerme 2 s con ADC y BOD apagados. El tiempo de sueño no es libre: el watchdog solo admite periodos fijos, definidos en este enum de la librería:
enum period_t
{
SLEEP_15MS,
SLEEP_30MS,
SLEEP_60MS,
SLEEP_120MS,
SLEEP_250MS,
SLEEP_500MS,
SLEEP_1S,
SLEEP_2S,
SLEEP_4S,
SLEEP_8S,
SLEEP_FOREVER
};

Combinando todo (bajo consumo + reloj reducido + 3,3 V) se llega al mínimo absoluto: el Arduino Uno baja un 88,37% (de 98,43 a 11,45 mA) y el Arduino Pro Mini llega a 1,58 mA, una reducción del 89,19% respecto de su versión de 5 V.

Cuándo NO bajar a 3,3 V: si tienes un sensor que necesita 5 V, tendrás que usar el modo de bajo consumo a 9 V para poder entregar esos 5 V estables. En ese caso pierdes algo de eficiencia, pero ganas compatibilidad con el sensor.
Variantes y mejoras
- Estación meteo autónoma: combina el Pro Mini a 1,58 mA con un sensor tipo BME280 (temperatura, humedad, presión) y despiértalo cada 10 minutos para tomar una lectura. Con una batería 18650 puedes lograr meses de autonomía.
- Despertar por interrupción externa: en vez de dormir por tiempo fijo, usa un sensor PIR o un botón en un pin de interrupción para despertar el micro solo cuando ocurre un evento. Ideal para alarmas.
- Registro con timestamp: agrega un módulo RTC DS3231 (muy bajo consumo) para marcar la hora exacta de cada medición aunque el micro pase dormido la mayor parte del tiempo.
Personalización para Chile
Los componentes para replicar este proyecto están en MechatronicStore (precios aproximados, referenciales):
- Arduino Pro Mini (la placa más eficiente aquí). ~$6.000 CLP
- Arduino Nano (alternativa con USB). ~$7.000 CLP
- Multímetro USB / medidor de consumo. ~$6.000 CLP
- Batería 18650 Li ion + portapilas. ~$4.000 CLP
- Módulo RTC DS3231 (para la variante con timestamp). ~$3.000 CLP
Para programar el Pro Mini vas a necesitar además un conversor USB Serial (FTDI/CP2102). Los enlaces directos con stock se agregan en la versión final del artículo.
Recursos
- Tutorial original: Guide to reduce the Arduino Power Consumption
- Librería Low Power (rocketscream): Low Power en GitHub
- Hoja de datos ATmega328P: ATmega328P, Microchip
Versión chilena, basada en el tutorial de DIYI0T, con componentes en stock local en MechatronicStore.




