Fabricación de un Reloj-Cronómetro-Temperatura, encadenando 4 módulos SMD de 7 segmentos con control serie. El controlador de este reloj está construido a partir del micro controlador AT89S52, con encapsulado TQFP de 44 pines (SMD).
ESQUEMAS
Módulo RTC: DS1302
Las comunicaciones entre el micro-controlador y el chip de reloj DS1302 se realizan mediante 3 hilos:
- Reloj (SCLK)
- Entrada/Salida de datos (I/O)
- Habilitación (CE)
El módulo RTC ya incluye el cristal de cuarzo que necesita el chip DS1302, y una pila de 3V para mantener sus datos cuando falta la alimentación. La conexión entre este módulo y la CPU es de 5 hilos, 2 de la alimentación y 3 de control.
Sensor de temperatura: DS18B20
El control de este sensor de temperatura es bidireccional y se realiza mediante un sólo pin, así su encapsulado sólo tiene 3 pines: VCC, GND y Datos.
El DS18B20 se puede comprar con encapsulado normal, su aspecto es el de un transistor, o ya montado dentro de una cápsula de acero inoxidable. El encapsulado en acero inoxidable permite sumergir el sensor en líquidos, y también es muy aconsejable para utilizarlo en el exterior.
El chip DS18B20 es un sensor temperatura digital, su resolución es configurable entre 9 y 12 bits. Por defecto, de fábrica está configurado con 12 bits. A máxima resolución, sus últimos 4 bits se corresponden con las lecturas decimales de: 0,5°/ 0,25° / 0,125° / 0,0625°. Puedes ver más detalles técnicos de este sensor en el siguiente artículo:
FUENTE DE ALIMENTACIÓN
Para alimentar este reloj se necesita una fuente de alimentación de 12 VDC, con una corriente mínima de 200 mA. La solución más barata y eficaz, es incluir dentro de la caja del reloj una pequeña fuente de alimentación conmutada de 12V / 400 mA.
CONFIGURACIÓN
Para cambiar los datos de fecha, hora, cronómetro y el resto de parámetros de configuración, se utilizan dos pulsadores:
- MODE
- PLUS
Para modificar los datos del reloj, seguir el siguiente diagrama de configuración:
SELECCIONAR MODO: RELOJ/CRONÓMETRO
El modo de funcionamiento RELOJ/CRONÓMETRO se determina durante la fase de arranque, mientras se está mostrando en el display un mensaje de texto rotando, en la que se muestra la versión del firmware. Si no se toca ningún pulsador, el modo de funcionamiento será: RELOJ. Para cambiar a modo CRONÓMETRO en cualquier momento, seguir los siguientes pasos:
- Pulsar los dos botones a la vez: RESET
- Cuando aparezca el mensaje rotante, mantener pulsado el botón 1 (MODE)
Una vez que que hayamos entrado en el modo CRONÓMETRO, ya podremos configurar sus parámetros de funcionamiento. Estos valores se guardarán en el chip de memoria del reloj (DS1302), y estos serán los nuevos valores de arranque del cronómetro. Al igual que sucede con los parámetros del reloj, tendremos que tener conectada la pila de tampón en el chip, si no queremos perder todos los datos cuando falte la alimentación.
Detalles de la presentación del Display
Cuando se está funcionando en modo RELOJ, es posible seleccionar entre 3 tipos de presentación. La información que muestra el display se cambia mediante una breve pulsación del botón 2 (PLUS):
- Hora / (*) Alterno: Hora y Temperatura
- Temperatura
- Alterno: Hora, Fecha y Temperatura
(*) El modo alterno de la presentación 1ª, se muestra en caso de que se active la alarma de temperatura en el menú de configuración. En caso contrario, la presentación 1ª mostrará la hora de forma permanente.
Cuando se active el modo de presentación alterno, la temperatura se mostrará de forma síncrona con el reloj, y lo hará cada 5 segundos. Entre el segundo 5 y el 55 de cada minuto, nunca se mostrará en el segundo ‘0’ de cada minuto. La temperatura sólo aparecerá durante un segundo de cada 5, en total 11 veces en cada minuto.
Alarma de Temperatura
La lectura del sensor de Temperatura se realiza cada 10 segundos. De manera que entre dos presentaciones sucesivas de 5 segundos, sólo una de las lecturas será en tiempo real. Cuando está utilizando la presentación 1ª en modo alterno, los segundos acabados en ‘0’ mostrarán la temperatura leída anteriormente, excepto en el segundo ‘0’ de cada minuto que no se muestra. En el caso de que la temperatura sobrepasara alguno de los dos umbrales de alarma, el aviso acústico se realizará cuando el valor acaba de ser leído. Es decir, la alarma de temperatura sólo sonaría en los segundos acabados en ‘5’.
Alarmas horarias
El reloj permite configurar 2 alarmas horarias, sin prioridad entre ellas pero siguiendo este criterio: Cuando una de las dos alarmas se dispara, mientras permanezca en su periodo activo, la otra alarma nunca podrá dispararse.
Las dos alarmas horarias pueden valer para los 7 días de la semana, o estar limitadas a los 5 días laborables, quedando inactivas todos los Sábados y Domingos. En modo RELOJ, el punto decimal del dígito de la derecha (esquina inferior derecha del display) esta asociado a la alarma horaria. Las alarmas horarias pueden configurarse para que suenen una sola vez (1 minuto si no se silencia antes) o con repeticiones. Las repeticiones se realizarán cada 5 segundos. Para silenciar el sonido de una alarma, realizar una breve pulsación en el botón 2 (PLUS). Si después de sonar una alarma se quieren anular todas sus repeticiones sin cambiar la configuración del reloj, es necesario pulsar los dos botones a la vez (RESET).
Estados posibles del LED indicador de alarma horaria:
- APAGADO: No existe ninguna alarma horaria en las próximas 24 horas
- PARPADEANDO: Existe alguna alarma horaria dentro de las próximas 24 horas.
- FIJO: Alarma ACTIVA, sonando o dentro del periodo de repetición.
Hora: Verano/Invierno
En algunos países existen dos tipos horarios:
- Horario estándar, el que corresponde con el huso horario (Horario de invierno).
- Horario de verano:
El cambio de hora se aplica una vez al año, haciendo que del horario estándar (o de invierno) se pase al horario de verano. Aunque la primera vez que se aplicó este cambio de hora fue durante la Primera Guerra Mundial, dejo de aplicarse hasta la crisis del petróleo de 1973. El objetivo es el de aprovechar mejor la luz solar, consumiendo menos electricidad.
HORARIO DE VERANO
Último domingo de MARZO: A las 2:00 AM se adelanta a las 3:00 AM
… se adelante 1 hora el reloj
HORARIO DE INVIERNO
Último domingo de OCTUBRE: A las 3:00 AM se atrasa a las 2:00 AM
… se atrasa 1 hora el reloj
FIRMWARE
El firmware de este reloj se programa una vez montado el micro controlador (AT89S52) en su circuito impreso, a través de su interface de programación serie ICSP. Lo ideal sería utilizar un programador que tuviera dicho interface, pero si no lo tienes, puedes hacerlo con ARDUINO.
El archivo que necesitas para programar este reloj (firmware), lo puedes descargar de forma gratuita desde el siguiente enlace:
FABRICAR LA CAJA CON UNA CNC
Archivos para cortar la madera tipo DM de 10 mm, en una CNC, y fabricar la caja de este reloj:
CIRCUITOS IMPRESOS (PCB)
Archivos GERBER para fabricar el PCB de la CPU:
Archivos GERBER para fabricar el PCB de la CPU (v2):
En esta versión se corrige el tamaño de los taladros, se incluye la posibilidad de utilizar dos tipos de conector en sus salidas y se añade una toma auxiliar de +5V
Archivos GERBER para fabricar el PCB del Display ( 1 dígito de 7 segmentos):
Si quieres ver los detalles de fabricación, configuración y puesta en marcha de este reloj, echa un vistazo al siguiente video:
hola amigo, me estoy volviendo loco para programarlo, me dice over current, protection y no se que hacer mas,todo esta coinectado al tl866 bien como indicas
Haz la programación sin conectar el display a la CPU, y conecta un alimentador de 5 VDC en la CPU.
Muy interesante yo estoy buscando hacer un reloj termo pero con formato decc12 horas …este por lo qu he visto es solo 24 horas y el codigo esta hex como puedo hacerlo para 12 horas amigo JR gracias
Lo hice en formato de 24 horas porque así no hace falta indicar si es AM o PM, algo imprescindible a la hora de ajustar la fecha. Para que mostrara la hora en formato de 12H, sería necesario modificar las rutinas de gestión con el chip RTC y añadir la indicación AM/PM en los menús de presentación. Si alguna vez hago una actualización, lo tendré en cuenta.
Si yo pence hacer eso en el RTC y sorprendido por tan pronta respuesta gracias amigo y continuare siguiendo su canal es muy bueno y usted explica tecnicamente bien.
Gracias por esa solucion en verdad es bastante sensillo yo comence hacer este reloj y quiero hacer otro pero con menos cableria usando cintas led ws2812b a traves de data si llegas a hacer con cintas led mucho te lo agradeceria , porque los que he visto son en su mayoria con arduino nano y cuando vas al codigo nunca funcionan las librerias ,un abrazo y gracias de nuevo por excelente solucion
De momento no crea que haga un reloj con tiras LED… pero nunca se sabe.
Pronto pondré una reseña de ese video en el blog, y pondré el link de descarga de la nueva versión.
Seria posible la lista de componentes que hay que comprar para 4 placas y construcción del reloj??
La lista de componentes la puedes sacar de los esquemas, pero como ya me la han pedido varias personas, cuando tenga un poco de tiempo la añadiré en esta misma entrada.
Gracias, aunque ya me lo han pedido alguna vez y no creo que lo haga. Este tipo de proyectos se suelen hacer en grupo, porque no consiste todo en saber programar… hay que interpretar la información de los fabricantes de cada periférico para hacer sus librerías de control, manejar programas de diseño para hacer los circuitos impresos y disponer de mucho tiempo para hacer pruebas y depurar los diseños. Las instrucciones de programación son pocas y se pueden explicar, el problema es que no se puede exponer el planteamiento de algunas rutinas, sin saber el conocimiento en electrónica que tiene cada persona… este tipo de enseñanza no se puede hacer a distancia.
Hola, me impresiona el nivel de tus conocimientos de programación de microcontroladores, por qué no haces algunos tutoriales y nos enseñas a programar? Un cordial saludo!