Mostrando entradas con la etiqueta nokia 3310. Mostrar todas las entradas
Mostrando entradas con la etiqueta nokia 3310. Mostrar todas las entradas

domingo, 21 de febrero de 2016

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

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://seta43.duckdns.org/ardurab.html  y  http://seta43.duckdns.org/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:
  • Al iniciar el programa se realiza una toma de temperatura, colocando la temperatura máxima y mínima a dicho valor.
  • Se ponen a cero todos los valores de la gráfica.

En el bucle principal:
  • Se toma una temperatura, se muestra en el LCD.
  • Se compara con las temperaturas de máximos y mínimos par cambiar si es el caso.
  • Se calcula la diferencia  con el anterior valor de temperatura para añadirse a los valores de la gráfica.
  • El arduino se pone en modo de dormir hasta el próximo despertar, que está puesto a 1S.


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://seta43.duckdns.org/ardurab.html
http://seta43.duckdns.org/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/

lunes, 19 de octubre de 2015

Visualizar datos gps XM37-1612 en Nokia 3310

Página principal


Visualizar datos gps XM37-1612
Nokia 3310
xsetaseta@gmail.com


En el anterior artículo gamgps.html habia realizado un visualizador de datos gps para el módulo XM37-1612 que transmitía la información al ordenador para ser visualizada. Pero claro, tener que llevar un ordenador portátil para ver los datos del gps es un tanto incómodo. Mi solución es utilizar el visualizado Nokia 3310, y alimentar todo mediante una batería de 3.7 V.
El montaje se ha realizado con un arduino nano, que funciona perfectamente con alimentaciones 3V.
Sigo sorprendiéndome de la sensivilidad del módulo XM37-1612 , dentro de mi habitación sobre el escritorio tengo señal de gps con 8 satelites.



Esquema del circuito.

Aunque el esquema se ha realizado con un arduino clásico, el montaje se ha realizado con un arduino nano.


Montaje de circuito.



Datos del módulo XM37-1612 Datos de un teléfono

El consumo de todo el circuito es de 49mA a 5V , y de 35mA a 3,5V.
El consumo del
módulo XM37-1612 es de 26mA.


PROGRAMA


Saludos.
Juan Galaz


Bibliografía:

http://www.gpsinformation.org/dale/nmea.htm
rards.html
gamgps.html

lunes, 14 de abril de 2014

Arduino Reloj con Nokia 3310

Página principal


Arduino
Reloj con Nokia 3310
xsetaseta@gmail.com

Recién adquirido un LCD 3310, que llevaban los modelos de Nokia, me he dispuesto a pasar los montajes de relojes que hice con un lcd de 16x2, artime.html , arduds.html ,  al LCD 3310.
Existen una librerías: Adafruit_GFX y  Adafruit_PCD8544 para manejar el LCD, pero tienen un problema, no funcionan con versión 1.0.5, que es la que tengo instalada, por lo que he utilizado otra forma. En la página oficial de arduino existe un ejemplo, http://playground.arduino.cc/Code/PCD8544 , el cual le he adaptado a mi programa.
Como podemos observar en las características del LCD 3310, debe funcionar a 3.3V, y las salidas del arduino funcionan a 5V. He visto varios montajes utilizando resistencias, pero  en uno  decía que el LCD podía funcionar a 5V, pero el Led de iluminación solo se podía poner a 3.3V, y eso es lo que he hecho. A pesar de lo que dice el fabricante funciona a 5V, no se por cuanto tiempo. Hemos de pensar que el ATMega328 funciona perfectamente a 3V, por lo cual podemos alimentar todo el conjunto con baterías de 3V.

Programa


Datos técnicos del LCD.



Esquema reloj simple mediante interrupciones.


Montaje
reloj simple mediante interrupciones.


Esquema de reloj mediante DS1302


Montaje
de reloj mediante DS1302



Los dos modos que tiene de tamaño de hora.

He hecho una modificación en el montaje con el DS1302 , para poderlo desbloquear la primera vez que se pone en marcha. Manteniendo pulsados a la vez los dos pulsadores mientras se resetea o se inicia, se desbloquea el
DS1302 , poniendo una fecha determinada.


Hasta pronto.
JUAN GALAZ

Bibliografía:
 http://playground.arduino.cc/Main/DS1302
 http://playground.arduino.cc/Code/PCD8544
 http://www.microsyl.com/index.php/2010/03/24/nokia-lcd-library/
 http://seta43.duckdns.org/electro.html