Página principal
Arduino
Reduciendo consumo.
Parte 1
Reloj - DS1302
xsetaseta@gmail.com
En este montaje intentamos
reducir el consumo de corriente de mi anterior montaje arduds.html.
El consumo de todo el circuito incluido placa de arduino y LCD es de
23,3 mA.
En esta primera parte he utilizado tres métodos para reducir el
consumo.
Método 1.
El primero es variar dinámicamente mediante el programa la
velocidad del reloj del ATMEGA328.
Esto se consigue modificando el registro CLKPR – Clock Prescale
Register.
En la parte del programa que quiero que corra a 16MHZ pongo las ordenes:
CLKPR = (1 << CLKPCE);
CLKPR
=
0; // Velocidad 16Mhz
En la parte del programa que quiero que corra a 500khz pongo las
ordenes:
CLKPR = (1 << CLKPCE);
CLKPR
=
5; // Velocidad
500khz
Método 2.
El segundo método para reducir el consumo es el de reducir el
voltaje de alimentación del circuito.
El arduino utiliza 5V para la alimentación de todo el circuito.
Si se disminuye el voltaje de 5V a 4V podemos obtener un significativo
ahorro de consumo.
Podríamos disminuir el voltaje hasta 2,8 V, pero los LCD no
trabajan por debajo de los 4V, con lo cual el microcontrolador
funciona, pero en el LCD no se ve nada.
Tengo un LCD que en teoría funciona con 3,3V, pero en la
práctica por debajo de 3,6V no se ven los caracteres.
Método 3.
El tercer método para reducir el consumo es montar solo el
microcontrolador con los componentes mínimos para que funcione,
cristal
y dos condensadores. De esta forma eliminamos el consumo del conversor
USB->RS232 y otros componentes que lleva la placa.
Si no se requiere mucha precisión de reloj, podríamos
eliminar el crystal y los dos condensadores, utilizando el oscilador
interno de 8 MHz. Estó requiere modificar el boot del
arduino por lo que lo he descartado.
Montaje del micro
con los dos condensadores y el cristal.
Programa arduino
Después de realizar todas la pruebas, estos son los resultados:
|
5V
|
4V
|
3,7V
|
16Mhz
|
23.3mA
|
14,5mA
|
|
2MHz
|
14,4mA
|
9mA
|
|
1MHz
|
13,4mA
|
8,6mA
|
|
500KHz
|
13,2mA
|
8,3mA
|
|
500KHz(Atmega328+LCD)
|
5,5mA
|
4,5mA
|
2,6mA
|
En el mejor de los casos, si alimentamos el circuito con 3 pilas
alcalinas en serie (4,5V) de 2890mAH y colocamos un diodo en serie para
bajar el voltaje a 3,8V la corriente medida es de 2,6mA.
Si dividimos 2890 entre 2.6 el resultado es de 1111 horas, 46
días. Siempre es algo menos debido a la autodescarga de la
propia batería.
Si quitamos el LCD en consumo se reduce a 1mA, alimentando el Atmega a
3,7V.
En la segunda parte trataremos el poner el microcontrolador a dormir
para disminuir el gasto de la batería.
Saludos
SETA43
Bibliografía:
http://www.gammon.com.au/forum/?id=11497
http://www.surprisingedge.com/low-power-atmegatiny-with-watchdog-timer/
http://blog.dosbotones.com/2011/09/reducir-el-consumo-de-arduino.html
http://www.sparkfun.com/tutorials/309
http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/