Está en la página 1de 6

Este dispositivo es un temporizador en el que podemos definir dos alarmas con resolucin de segundos que se repiten cada intervalo

de 24 horas. Este intervalo no tiene por qu coincidir con el da natural (de 0:00:00 a 23:59:59). Cada alarma est compuesta por un estado On y un estado Off que cierran y abren, respectivamente, las lminas de un rel de tipo reed. La alarma 1 tiene que ser anterior a la alarma 2 y, adems, el estado Off de la alarma 2 no puede estar ms de 24 horas retrasado respecto al estado On de la alarma 1. El dispositivo est programado para no saltarse ningn estado dentro de cada periodo de 24 horas, aunque se pierda el suministro elctrico. Por ejemplo, si al recuperar el suministro elctrico se detecta que no se ha pasado por alguno de los estados de alguna alarma anterior, el dispositivo reproduce inmediatamente todos los estados saltados dejando un segundo entre ellos, hasta ponerse "al da". Por ejemplo, si la alarma 1 est programada de 1:00:00 a 2:00:00 y la alarma 2 de 3:00:00 a 4:00:00, si se pierde el suministro elctrico a las 0:30:00 y se recupera a las 2:30:00, el rel se cerrar (estado On de la alarma 1), un segundo despus se abrir (estado Off de la alarma 1), y un segundo despus volver a cerrarse para alcanzar el estado que le corresponde por la hora actual. En este mismo sentido, el dispositivo est programado para dar prioridad al estado frente el cambio de estado . En otras palabras, al recuperarse de un fallo de suministro elctrico, el rel se coloca en el estado que le corresponda segn las horas de las alarmas, aunque ello suponga volver a cerrar el rel. Por ejemplo, si la alarma 1 est programada de 1:00:00 a 2:00:00 y la alarma 2 de 3:00:00 a 4:00:00, si se pierde el suministro elctrico a las 3:30:00 y se recupera a las 3:45:00, el rel se cerrar aunque ya se haba cerrado previamente a las 3:00:00. Si no se desea este comportamiento, sino dar prioridad al cambio de estado frente al estado en s, basta con comentar las lneas de la 561 a la 563: //if((ultimoEstadoRegistrado==1||ultimoEstadoRegistrado==3)&&!input_state(PIN _C7)){ // output_high(PIN_C7);

//}

Aunque se ha montado un rel de tipo reed (HE3621) que admite cargas muy bajas (est pensado simplemente para simular la pulsacin de un pushbutton de un deshumidificador), este rel puede sustituirse perfectamente por cualquier otro mayor con la nica condicin de que su bobina funcione a 5V y sea capaz de excitarse con la corriente que es capaz deconducir el BC548 (Q8). Los contactos del rel se encuentran en los pines 3 y 4 del conector X1. El circuito debe alimentarse a 5V , bien a travs del conector USB o bien a travs de los pines 1 y 2 del conector X1 (EXT). Mediante el jumper JP2 elegiremos cul de estas dos fuentes deseamos utilizar. Mediante el jumper JP6 podemos indicar que todo el circuito se alimente a 5V o que el PIC18LF2455 y el DS3231 se alimenten a 3V3. Si optamos por alimentarlo todo a 5V podremos prescindir del MAX604, pero para logar la mayor precisin del reloj DS3231 es recomendable alimentarlo a 3V3.

La programacin del PIC puede realizarse a travs del conector ICSP . En este caso podemos utilizar el jumper JP3 para determinar si queremos alimentar el PIC a travs de la placa (PCB) o a travs del propio programador (ICSP). Los displays de 7 segmentos (realmente de 9) elegidos son de tipo nodo comn (concretamente son el modelo LA8041-11 L de LedTech). Estos 6 displays estn multiplexados, de modo que slo uno de ellos (determinado por el CD4022) est alimentado en cada instante. Obsrvese que algunos de los displays se han montado girados 180 respecto a los dems para poder crear el signo : de separacin entre horas y minutos sin aadir LEDs adicionales.

El dispositivo tiene los siguientes modos de funcionamiento:


Fecha/Hora. Es el modo en el que arranca inicialmente. Configuracin de fecha/hora Hora de las alarmas Configuracin de hora de la alarma Temperatura: Muestra la temperatura registrada por el DS3231, que tiene una resolucin de 0.25C y una precisin de +/-3C.

Ahorro de energa: Deja slo encendidos los signos : parpadeantes de separacin entre horas:minutos:segundos.

La misin de los botones A, B, C y D es la siguiente:

Botn A: En el modo Fecha/Hora, con una pulsacin corta permite alternar entre la visualizacin de la fecha y la hora, mientras que con una pulsacin larga entra en el modo Configuracin de fecha/hora. En el modo Configuracin de fecha/hora, con una pulsacin corta permite alternar entre el ajuste de hora/dia, minutos/mes y segundos/ao, mientras que con una pulsacin larga regresa al modo Fecha/Hora sin aplicar ningn cambio. En el modo Configuracin de hora de alarma, con una pulsacin corta confirma el cambio en la hora de la alarma configurada. Si intentamos configurar una fecha no vlida, como 30 de febrero, no ser aceptada y el display mostrar el mensaje "Error". En cualquier otro modo, con una pulsacin corta regresa al modo Fecha/Hora.

Botn B: En el modo Hora de las alarmas, con cada pulsacin corta va visualizando las horas configuradas para los estados On y Off de cada una de las 2 alarmas; el punto izquierdo del display 1 se ilumina en el estado On de la alarma 1, el punto derecho del display 1 se ilumina en el estado Off de la alarma 1, el punto izquierdo del display 6 se ilumina en el estado On de la alarma 2, y el punto derecho del display 6 se ilumina en el estado Off de la alarma 2. El estado Off siempre debe ser posterior al estado On, el estado On de la alarma 2 debe ser posterior al Off de la alarma 1, y el estado Off de la alarma 2 no debe estar retrasado ms de 24 horas respecto al estado On de la alarma 1; en caso contrario el display mostrar el mensaje "Error". En este mismo modo (Hora de las alarmas) con una pulsacin larga entra en el modo Configuracin de hora de alarma del estado que estemos visualizando. En el modo Configuracin de hora de alarma, con una pulsacin corta permite alternar entre el ajuste de hora, minutos y segundos, mientras que con una pulsacin larga regresa al modo Hora de las alarmas sin aplicar ningn cambio. En el modo Configuracin de fecha/hora, con una pulsacin corta confirma el cambio configurado en la fecha o la hora. En cualquier otro modo, con una pulsacin corta regresa al modo Hora de las alarmas.

Botn C: En los modos Configuracin de fecha/hora y Configuracin de hora de la alarma, con una pulsacin corta resta una unidad en el valor que estemos configurando (hora, minuto, segundo, da, mes o ao), mientras que con una pulsacin larga resta unidades de forma continua (retroceso rpido). En cualquier otro modo, con una pulsacin corta pasa al modo Temperatura.

Botn D: En los modos Configuracin de fecha/hora y Configuracin de hora de la alarma, con una pulsacin corta suma una unidad en el valor que

estemos configurando (hora, minuto, segundo, da, mes o ao), mientras que con una pulsacin larga suma unidades de forma continua (avance rpido). En cualquier otro modo, con una pulsacin corta pasa al modo Ahorro de energa. Si los dos estados (On y Off) de una alarma se configuran exactamente a la misma hora, minuto y segundo, simplemente ser ignorada (no se cerrar ni se abrirn los contactos del rel). Cuando los contactos del rel estn cerrados se enciende el punto superior derecho del display 5; por el contrario, si los contactos del rel estn abiertos este punto permanece apagado. El botn R permite resetear el PIC. Aunque se interrumpa el suministro elctrico o se resetee el PIC, la configuracin de las alarmas no se pierde porque est registrada en la EEPROM. Si se interrumpe el suministro elctico tampoco se pierde la configuracin de fecha/hora del DS3231 porque queda alimentado por la batera de botn 2032 de 3V. El PCB es un diseo a doble cara relativamente fcil de fabricar porque las pistas, las vias y los pads son bastante gruesos. Por ejemplo, el prototipo ha sido fabricado con el mtodo de la plancha utilizando papel CPM 6.3. Todos los componentes son Through hole, excepto el PIC18LF2455 y el DS3231 que son SMD. Los pines del DS3231 estn disponibles a travs de las dos tiras de pines JP4 y JP5 porque quera aprovechar este diseo como placa de entrenamiento sobre el DS3231 . Una caracterstica importante de este proyecto es que no existe acoplamiento elctrico (sino magntico, a travs del rel) entre el PIC_RTC_Relay y el dispositivo que se quiere controlar con l. El software ha sido desarrollado en CCS C, aprovechando la librera para el DS1307 de RedPIC sobre la que se han aplicado pequeas modificaciones para adaptarla al DS3231. El cdigo est un poco desordenado porque se fueron introduciendo modificaciones sobre la marcha.

Posibles mejoras:

Resultara relativamente sencillo convertirlo en un cronotermostato aprovechando el sensor de temperatura del DS3231. Ampliar la resolucin hasta milsimas de segundo aprovechando que la salida SQW del DS3231 puede programarse a un mximo de 8192Hz. Aumentar el nmero de rels para manejar simultneamente varios pushbuttons. Podra ser de utilidad, por ejemplo, en la automatizacin de maquetas de trenes, luces de Navidad, aplicaciones domticos, ... o, en general, en la automatizacin de cualquier dispositivo que se maneje manualmente mediante botones.

Podra implementarse un software para PC que, a travs de la conexin USB, permitiese programar otros tipos de alarmas (semanales, mensuales, cada cierto intervalo, ...), o incluso manejar simultneamente varios rels a modo de secuenciador.

Este proyecto se distribuye de forma gratuita, estando compuesto originalmente por:


Esquema electrnico en formato de Eagle y PDF Diseo del PCB en formato de Eagle y PDF Cdigo fuente en CCS C Archivo compilado en formato HEX Bill of materials

La descarga de toda esta documentacin, aqu .

Registro de cambios
v1 He modificado el sistema de ajuste de la hora y la fecha para que la hora, minutos, segundos, o el da, mes y ao, sigan corriendo mientras el usuario no los modifique explcitamente. De esta forma, el usuario, por ejemplo, puede cambiar la hora y los minutos sin tener que volver a establecer los segundos. As es ms cmodo, por ejemplo, para ajustar la hora al horario de verano/invierno que slo implica modificar la hora.

También podría gustarte