RELOJ DE TIEMPO REAL PARA DATALOGGER

El Datalogger es un sistema de adquisición de datos, fácil de usar y programar. Básicamente consiste de cuatro canales de entrada cuyos datos pueden ser sacados y almacenados (logged) en intervalos programados por el usuario. Un canal es dedicado para usar con un sensor de temperatura digital. Por lo tanto las tres restantes, pueden ser usadas como entradas analógicas o digitales. Con este dispositivo podemos realizar una gran cantidad de tareas, y la explicación detallada de armado y uso de brindó en Saber Electrónica Nº 224 (la puede bajar gratuitamente desde nuestra web). En esta nota veremos cómo le podemos agregar un reloj de tiempo real al sistema de adquisición de datos, teniendo en cuenta que el circuito puede ser usado para otras aplicaciones.

SISTEMA DE ADQUISICION DE DATOS PICAXE-18X:
AGREGANDO UN RELOJ DE TIEMPO REAL
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:

  1. Ejecute el Programming Editor software (v3.5.1 o superior)
  2. Seleccione View>Options y luego elija el modo PICAXE-18X. Click OK.
  3. Seleccione PICAXE>Wizards> AXE110 Datalogger>Start New Datalogger Mission
  4. 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.

 
CONCLUSION
El DS1307 es un reloj de tiempo real de aplicación muy fácil, que puede usarse para largos periodos de tiempo en el Datalogger. Es un extra de bajo costo para el sistema datalogger de PICAXE.

Por último, y a modo de complemento, en la figura 5 volvemos a graficar el circuito del Datalogger desarrollado en Saber Electrónica 224. En futuras entregas daremos aplicaciones de este sistema de adquisición de datos.

 
Autor: Clive Seager - Con comentarios y supervisión de Horaio D. Vallejo e Ismael Cervantes de Anda (Docente ESCOM)
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
FIGURA 5
 
TABLA 1
 
TABLA 2