Página principal

Arduino
Termómetro máximos y mínimos con gráfica
DS18B20
LCD Nokia PCD8544
Atmega328 power low

Estaba realizando otro montaje para predecir el tiempo atmosférico y me salio este montaje, un termómetro con máximos y mínimos con gráficos. Debía crear una gráfica en un LCD PCD8544 para determinar la probabilidad de lluvia, y como sabeis me gusta realizar mis propias rutinas, y evitar cálculo con comas flotantes, además de intentar reducir lo máximo el tamaño del programa. Lo de reducir el tamaño del programa viene de lejos, cuando programaba micros y había que exprimir la poca memoria que había. La tendencia de la programación  de este tiempo, es utilizar librerías donde no se entiende lo que hacen, pero por lo contraría reducen el tiempo de desarrollo del proyecto aumentando considerablemente el tamaño del programa.
También he querido reducir lo máximo el consumo del circuito, para poder alimentarlo mediante pilas o baterías. Para esto he revisado dos de mis anteriores montajes , http://www.seta43.netau.net/ardurab.html  y  http://www.seta43.netau.net/arduraa.html  ,donde explico formas para poner en bajo consumo al arduino.
Como en muchos de mis montajes he querido poner todo el conjunto del programa en un único fichero, de esta forma no se necesita ninguna librería aparte.

El programa funciona de la siguiente manera:

En el bucle principal:


Esquema del circuito.


Montaje de circuito. Fig. 1


Montaje de circuito. Fig. 2

void watchdogOn()

MCUSR = MCUSR & B11110111;
WDTCSR = WDTCSR | B00011000;
//WDTCSR = B00000101; //0.5S
WDTCSR = B00000110; //1S
//WDTCSR = B00100001; //8S

// Activa the watchdog timer interupt.
WDTCSR = WDTCSR | B01000000;
MCUSR = MCUSR & B11110111;
}
Si queremos modificar el tiempo en el cual el arduino se despierta para realizar una toma de temperatura,
modificamos la rutina watchdogOn() , donde existe 3 posibilidades 0,5mS , 1S y 8 Segundos.


Modelo
Voltios
Consumo
Arduino nano
3,31V
4,31mA
Arduino mini
2,4V
1mA
Arduino mini 3,3V
1,67mA(picos 8mA)
Arduino mini 5V
3,3mA(picos de 17mA)
Arduino mini 3V
1,4mA

Podemos observar que el consumo del arduino mini a 2,4V es de 1mA , aunque creo que podría ser menor si se quitan todos lo componentes que tiene el propio arduino.
Aún así alimentado el montaje con dos pilas de 1,5V y 1500mA, y haciendo una media de 1.2 mA, la autonomía es de alrededor de 52 días.

PROGRAMA

Saludos.
Juan Galaz


Bibliografía:
http://www.seta43.netau.net/ardurab.html
http://www.seta43.netau.net/arduraa.html
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/
http://www.engblaze.com/hush-little-microprocessor-avr-and-arduino-sleep-mode-basics/
http://www.fiz-ix.com/2012/11/low-power-arduino-using-the-watchdog-timer/
http://jeelabs.org/2009/05/16/power-consumption-more-savings/