El Datalogger
es un sistema de adquisición de datos de
cuatro canales, basado en el microcontrolador PICAXE-18X
cuyo funcionamiento y construcción fue explicado
en Saber Electrónica Nº 224 (puede bajar
toda la información de www.webelectronica.com.ar,
haciendo click en el ícono password e ingresando
la clave: “dataclock”. El microcontrolador
de este Datalogger puede ser reprogramado por el
usuario para realizar experimentos de adquisición
de datos de muchos tipos.
Anteriormente, en Saber Electrónica
Nº 224, vimos de manera básica, el diseño
del sistema de adquisición de datos y estudiamos
la operación del bus i2c con las memorias
EEPROM. Si no está familiarizado con el bus
i2c, por favor revise dicho artículo anterior
antes de seguir adelante.
La adquisición de datos
en el circuito base puede ser manejada en intervalos
regulares (típicamente de un minuto a varias
horas) usando simples retardos de tiempo. Pero en
mayores períodos de tiempo, al usar este
método, se van a experimentar algunas variaciones
(posiblemente unos segundos por día, dependiendo
de las condiciones). Esto se debe a la tolerancia
de fabricación del resonador interno del
microcontrolador PICAXE.
Si se necesita más exactitud
para largos períodos se necesita agregar
un circuito integrado RTC (reloj de tiempo real).
El RTC Dallas DS1307
El semiconductor Maxim/Dallas DS1307 (vea la figura
1) es un reloj de tiempo real exacto, el cual automáticamente,
mantiene el tiempo y la fecha actual, incluyendo
compensación para meses con menos de 31 días
y saltos de año. El DS1307 es un dispositivo
de 8 pines al que se le conecta un cristal de cuarzo
estándar, de bajo costo, a 32.768kHz entre
los pines 1 y 2 para proveer tiempo base exacto.
Opcionalmente se le puede conectar al pin3, baterías
de respaldo de 3 volt, asegurando que se mantendrá
el tiempo a la fecha aunque esté desconectada
la fuente de tensión del circuito prin cipal.
El circuito integrado automáticamente detecta
que se ha removido la energía en el circuito
principal y se conectan las baterías de respaldo
cuando es requerido.
La batería de respaldo puede
durar hasta 10 años y se coloca en la misma
base de circuito impreso, tal como muestra la figura
2.
Adicionalmente el circuito integrado
DS1307 tiene dos características interesantes.
El pin 7 es una salida de colector abierto, que
puede ser programada para hacer “flash”
cada 1Hz. Esto permite la colocación de un
led como indicador de segundos en aplicaciones de
reloj. El circuito integrado también tiene
56 bytes de memoria RAM para propósito general,
el cual puede ser usado como memoria extra por el
master PICAXE si es requerido.
La figura 3 muestra el circuito
completo del temporizador de tiempo real y su conexión
en el PICAXE-18. Si quiere utilizar este reloj para
otras apliaciones, debrá realizar las conexiones
apropiadas.
Tenga en cuenta que el chip no
va a operar hasta que sea puesto el tiempo y fecha
actual.
Parámetros del i2c
Slave
En la hoja de especificaciones del fabricante del
DS1307 (www.dalsemi. com), se encontraron los siguientes
detalles.
slave address - 1101000x
address size - 1 byte
bus speed - 100kHz
Esto significa que el comando i2c
slave a programar en el PICAXE es el siguente:
i2cslave %11010000, i2cslow,
i2cbyte
Los registros del DS1307 están
definidos en la tabla 1. Todos los datos de tiempo/fecha
están en formato BCD, lo cual hace muy fácil
su lectura y escritura usando notación hexadecimal.
Por ejemplo 11:35 a.m. va a contener $11 en el registro
de horas y $35 en el registro de minutos.
Poniendo el tiempo y la
fecha
Para poner el tiempo correcto después de
que el circuito es alimentado por primera vez, el
tiempo actual debe ser escrito en los registros.
El siguiente ejemplo de un programa
PICAXE va a configurar el tiempo a las 11:59 del
jueves 25/04/06 usando el comando writei2c. Esto
se logra cargando los registros en orden de la dirección
00 hacia arriba; por ejemplo segundos, después
minutos y luego horas, etc.
i2cslave %11010000, i2cslow,
i2cbyte
writei2c 0, ($00, $59, $11, $03, $25, $04, $06,
$10)
end
Después de que este programa
es descargado, el led de salida (si está
puesto) debería empezar a parpadear cada
segundo.
Usando el DS1307
Veremos cómo leer tiempo y fecha del DS1307
se puede apreciar mejor con un ejemplo. El programa
mostrado en la tabla 2 actúa como un reloj
de alarma de adquisición de datos, que hace
chequeos cada 23 segundo.
Si son exactamente las 7:00 entonces
las lecturas de temperatura y luz son guardadas
en la memoria EEPROM (este programa hace referencia
al sistema descripto en Saber Electrónica
Nº 224, donde dábamos ejemplos con mediciones
de luz y temperatura). El programa correrá
por 30 días después de ese tiempo
el led rojo se prende indicando que la misión
ha sido completada.
Usando el asistente del
sistema de adquisición de datos
Se pueden usar sistemas de adquisición de
datos más complejos con el reloj de tiempo
real DS1307 y el editor de programación PICAXE.
Este editor de programación es un software
que incluye un asistente muy útil, que automáticamente
generará programas en Basic. Esto permite
programas más complejos para ser generados
con un click del Mouse.
Para usar el asistente, una vez
que tenga instalado el Editor de Programación,
haga lo siguiente:
-
Ejecute el Programming Editor
software (v3.5.1 o superior)
-
Seleccione View>Options
y luego elija el modo PICAXE-18X. Click OK.
-
Seleccione PICAXE>Wizards>
AXE110 Datalogger>Start New Datalogger Mission
-
Seleccione Option y haga
clic en OK.
La nueva pantalla de asistente
para misiones de adquisición de datos es
mostrada en la figura 4. La mayoría de las
opciones del asistente son auto explicadas, y el
programa que se genera de Basic puede ser visto
en la pantalla y modificado, si es que lo desea.
Hay dos opciones de tiempo que usa el DS1307 RTC,
uno para poner exactamente el intervalo de tiempo
y el segundo para poner un tipo de alarma de reloj
para la adquisición de datos.
Una vez que el programa es descargado,
la misión inicia automáticamente,
y los datos son guardados en la memoria externa.
No es posible resetear la misión usando el
botón de RESET del sistema de adquisición
de datos. En vez de eso, para iniciar una nueva
misión debe descargar un nuevo programa en
el sistema de adquisición de datos. |