Sunteți pe pagina 1din 6

Datalogger de temperatura con 18F2550 (II)

ELECTRNICA
etiquetas: tutoriales

http://www.neoteo.com/datalogger-de-temperatura-con-18f2550-ii/
Luego de varios das de acumular bytes en la memoria EEPROM 24C64, ha llegado la hora de
descargar todos esos valiosos datos al ordenador y comprobar si todo ha funcionado segn lo
esperado. Para descargar la informacin almacenada en la memoria del datalogger utilizaremos la
conectividad USB que nos ofrece el PIC 18F2550 y una sencilla aplicacin realizada en VB6 para
facilitarnos la tarea. Hasta ahora todo fue un trabajo silencioso de adquisicin de datos, aqu
comienza la verdadera accin y la obtencin de los beneficios que nos brindar el datalogger.
Fue muy fra esta semana por estas tierras australes y los grficos obtenidos corroboran las glidas
temperaturas que registr el datalogger con su STCN75. La ubicacin que decidimos darle al
desarrollo fue un pequeo lugar en una de las ventanas que dan a un patio trasero de la casa.
Afortunadamente la habitacin donde se realiz la acumulacin de datos estaba aislada del resto de
la casa ya que hubo momentos en que los valores trmicos descendieron a tan slo 4C. Durante el
da la marcacin ascenda y hasta tuvimos situaciones accidentales: por ejemplo, un medioda, al
abrir la ventana para ventilar el cuarto, por descuido el sol comenz a dar sobre el STCN75 elevando
la temperatura a valores que no correspondan con la temperatura real del momento. Es decir, el
registro almacen valores mayores a los 20C cuando en realidad apenas tenamos 12C en pleno
medioda.
Otro accidente que tuvimos: una aleatoria falla en la grabacin de algunos registros trmicos y
horarios. La falla se debi a la lejana de conexin entre el mdulo que abarca al DS1307 y a la
memoria 24C64 y el mdulo que soporta al STCN75. La captacin de ruidos por un bus I2C muy
extenso en longitud que cruza por debajo de la placa entrenadora ha provocado este pequeo
defecto que no ha complicado en absoluto al funcionamiento global de nuestro datalogger. Una
construccin modular, un protoboard y mdulos alejados entre s propiciaron este pequeo defecto
que notarn si analizan los archivos de texto que acompaan al software que entregamos en este
artculo. Por supuesto, la solucin obvia y definitiva a este problema es la construccin de
un PCB optimizado para este equipo. Antes de continuar mostrndoles los resultados obtenidos,
haremos un breve repaso por el hardware y las partes fundamentales que intervienen y se agregan
en esta segunda parte del desarrollo.

Al sistema que hemos visto en el artculo anterior le hemos suprimido la alimentacin mediante
laconexin USB al ordenador y le hemos agregado al montaje una pequea fuente de
alimentacinconstruida especialmente para protoboard. Con una entrada de 12Volts a partir de una
pequea fuente de pared y dos reguladores fijos, obtenemos una construccin muy simple y efectiva.
Un 7805(5Volts) y un AZ1117 (3,3Volts) en una pequea placa de menos de 5 centmetros por lado
resumen una fuente de energa pequea y fcil de incrustar en cualquier zona del protoboard. En
nuestro caso, hemos elegido un rincn libre donde no moleste para trabajar con libertad y, por sobre
todas las cosas, para que no afecte a las lecturas de temperatura del STCN75. Como mencionamos
antes, dos reguladores, algunos capacitores, un par de LEDs indicadores de tensin de
funcionamiento y all tenemos nuestra fuente de alimentacin para protoboard. De este modo, con
una sencilla fuente de pared y un mdulo muy fcil y rpido de instalar en cualquier punto
del protoboard, resolvemos el tedioso trabajo de armarle a cada desarrollo una fuente incorporada
dentro del experimento para usarlo de modo autnomo y ambulante.

Utilizaremos la entrada de 5Volts proveniente desde el puerto USB para informarle al PIC
18F2550 que nos hemos comunicado con el ordenador. La placa entrenadora de Microingenia
S.L. trae un pin dedicado a tal fin (USBS), pero en cualquier construccin clsica esto se resuelve
con un divisor resistivo que luego se conecta a una entrada digital del microcontrolador. De este
modo, con una simple instruccin IF-THEN se interroga en forma peridica para conocer el estado
de conexin de nuestro datalogger. A este tipo de desarrollos lo hemos visto con anterioridad en
el Receptor NeoTeo, con un PIC 18F4550. El concepto es el mismo: cuando un estado lgico alto
aparece en la entrada que hemos escogido para monitorear la conexin, el firmware del PIC pasar
a un modo esclavo y quedar a merced de las instrucciones que determine el software que
utilizaremos en el ordenador.

Este pequeo software que desarrollamos en VB6 detendr la grabacin de datos en la


memoriaEEPROM y facilitar la transmisin de los datos que ella tenga almacenados hacia el
ordenador. Una vez all, sern interpretados y mostrados en forma adecuada para completar as el
trabajo deldatalogger. Una vez extrados los datos almacenados en la EEPROM, la grabacin se
reinicia desde la posicin cero de la memoria lista para ser cargada durante otras dos semanas. No
olvidemos que una memoria 24C64 permite almacenar hasta 14 das de nuestra informacin. El
formato de esta grabacin se realizaba de la siguiente manera: en el siguiente orden se graban seis
bytes: Da, Mes, Hora, Minutos, Signo y Temperatura. Recordemos que Signo es un espacio vaco
cuando la temperatura se encuentra por encima de los cero grados centgrados y un signo menos
cuando las temperaturas pasan a ser bajo cero (El STCN75 puede medir hasta -55C). Por el lado
de los grados de temperatura, stos se registran en la EEPROM como un nmero entero, sin
decimales. De este modo, podemos almacenar el valor dentro de un nico byte.
La escritura de los bytes mencionados dentro de la memoria se realiza (en Basic) mediante la
instruccin BUSOUT, y la lectura a travs de BUSIN. Primero escribimos la direccin inicial de
escritura/lectura dentro de la memoria y luego procedemos a realizar la accin necesaria. Es decir,
primero ubicamos el puntero, luego enviamos o extraemos los bytes uno a uno a partir de la
direccin escrita en forma inicial. (Para recordar y refrescar estos conceptos puedes leer el artculo

de memorias 24CXX o el anterior artculo del datalogger). Cuando el software del ordenador toma el
mando de la situacin, organiza mediante mensajes en el display del datalogger las operaciones que
se suceden en el sistema. Es decir, nos informar qu est haciendo el datalogger y qu debemos
hacer nosotros. Leeremos mensajes como Esperando pedido de datos o Leyendo memoria de
datos EEPROM, entre los principales. Lo que debemos tener presente es que el sistema nos
anunciar (a travs del display) cundo comienza la lectura de datos y cundo termina. No debemos
retirar en ese momento el cableUSB ya que la comunicacin se interrumpir, la cadena de datos se
corromper y tendremos que ejecutar toda la operacin nuevamente.
El programa que hemos preparado consta de muy pocas partes, todas muy importantes. En un
sector destacado encontramos un cuadro de texto donde se exhibirn los datos recuperados cual si
fuera un listado inmediato que podemos analizar all mismo sin mayores recursos que la observacin
del texto mostrado. En el sector derecho encontramos tres botones. El primero (superior) se activa al
establecerconexin USB entre el ordenador y el datalogger. Este botn, al activarse, nos permitir
obtener los datos almacenados en la EEPROM que, como dijimos en el prrafo anterior, podemos
leer y analizar en la misma aplicacin.

Luego encontramos un segundo botn que se activar al momento de desconectarnos del puerto
USB. Este botn nos permitir grabar informacin en dos archivos del tipo TXT ya predeterminados
que se encuentran junto a los ficheros que componen la aplicacin. Uno es Datalogger.txt y el otro
esTemp.txt. En el primero se graban los datos tal como los vemos en la pantalla de aplicacin,
mientras que en el segundo archivo slo se guardarn los valores de temperatura separados por un
espacio en blanco cada uno. El primer archivo puede ser impreso y guardado cual si fuera un
registro, un libro semanal, un log de datos (datalogger). El segundo archivo puede ser abierto por
cualquier software capaz de manejar planillas de clculo, obteniendo de este modo la posibilidad de
conseguir un grfico de la variacin de temperatura en funcin del tiempo. Un grfico de barras o
de lneas puede ser muy til para apreciar variaciones y curvas de comportamiento que a veces los
fros nmeros no nos muestran. Un grfico es mucho ms amigable y fcil de interpretar.

En este punto debemos tener especial atencin ya que la mayora de los programas que trabajan
con planillas de clculos slo permiten cargar hasta 256 datos (en el eje X). Esto significa que de las
1365 mediciones de temperatura que puede almacenar una memoria 24C64, slo podremos
graficar bloques de 256 datos. De todos modos, este es un perodo de tiempo importante (256
multiplicado por 15 minutos equivale a 2 das y medio) y en l podemos encontrar muchos eventos
dignos de ser analizados. De hecho, en la imagen que te mostramos, son muy claras las variaciones
de temperatura del da a la noche y permiten observar con claridad las mximas y las mnimas
registradas con su evolucin intermedia incluida.

El tercer y ltimo botn del grupo realiza esta operacin: nos muestra en un grfico las primeras 256
muestras de temperatura, es decir, desde la posicin cero de memoria hasta la 255. Si deseamos
analizar otros sectores, como mencionamos antes, tendremos que editar el archivo Temp.txt, extraer
el sector de datos que nos interesa, crear un nuevo archivo de texto y abrirlo con la aplicacin que
nos permitir graficar los parmetros seleccionados. Nada complejo, por supuesto. Lo importante
que debemos recordar es lo siguiente: leer los datos almacenados en la memoria no borra ni elimina
los datos almacenados en su interior, slo se saltear la eventual grabacin que pudiera tocarle en
ese preciso momento que estemos leyendo la memoria. El firmware del PIC est preparado para
llegar hasta el final de la capacidad de la memoria EEPROM y luego comenzar a sobrescribirla
nuevamente como si fuese un crculo de almacenamiento. El firmware que te entregamos est
preparado para ser cargado al 18F2550 con el bootloader que ya hemos utilizado en ejemplos
anteriores.
Una vez alcanzada la posicin 8190 (la memoria tiene capacidad para 8192 bytes), el firmware
comienza la grabacin desde la posicin cero. Es decir, si en 14 das no tuvimos tiempo de ir a
obtener los archivos de texto con un sencillo ordenador porttil al menos, la culpa no ser
del datalogger. l comenzar su cuenta como si recin se hubiera conectado a la fuente de
alimentacin. Debemos estar atentos entonces a ese concepto: Los datos no se borran al leerlos,
pero s se reinicia la memoria (a posicin cero) al ser leda. Tambin se reiniciar su puntero
(comienza a grabar desde posicin cero de memoria) si desconectamos la energa del datalogger o
si la acumulacin de datos supera los 14 das. Imagino que al leer estas lneas ya estars pensando
en una unidad UPS o de energa ininterrumpida para mantener siempre en funcionamiento a este
registrador de datos. De todas maneras, al reestablecerse la energa, los datos acumulados no se
borran de manera automtica. Es decir, podemos leer los datos que lleva acumulado el sistema

hasta ese momento y luego dejar que vuelva a comenzar desde cero. De otro modo, tambin podra
modificarse el firmware para conservar la posicin de memoria alcanzada al momento de un
terico corte energtico y luego rescatar este valor para continuar grabando desde la ltima posicin
al momento de interrumpirse la energa. Pero, claro, eso ya es parte de tu genialidad creativa y tu
capacidad como desarrollador.
Software y Firmware:Download

S-ar putea să vă placă și