Página principal
DCF77
Generador de señal
Signal
generator
Muchos
de los relojes que se compran ahora, tienen el ajuste automático
de hora.
Utilizan la señal que proporciona una emisora en Alemania en la
frecuencia de 77,5 KHz, esta señal se llama DCF77 .
De acuerdo con la serie de indicativos de llamada asignada, D
significa Deutschland.
La letra C fue seleccionada para identificar transmisores de
onda larga.
Como tercera letra, se determinó la letra F para los transmisores de
onda larga en las instalaciones de la estación transmisora
Mainflingen (debido a su proximidad a Frankfurt).
Para distinguir los distintos transmisores de esta estación, a las
tres letras DCF se han añadido dos cifras, en el caso del DCF77.
Los datos se mandan cada segundo, codificando como la supresión de
la señal hasta un 20% durante 100mS para el 0, y de 200mS para el 1.
También se utiliza el cambio de fase, pero en este artículo no se
verá.
En este montaje vamos a utilizar un arduino para generar todas las
señales.
Con el temporizador del arduino se puede generar una frecuencia
bastante cercana a 77,5KHz.
(8000000/77,50)-1=102 --->77,76khz
Deberíamos tener un reloj interno y utilizar un DS1302, pero como no
es el objeto de este montaje, utilizaremos un programa de ordenador
para actualizar el reloj en el arduino.
Por el pin 3 generaremos la señal de 77,5 KHz, y se modulará
mediante el pin 2.
La señal excitará a un transistor que tiene en su colector un
conjunto LC que está calculado para 77,5 KHz.
Estas ondas son las resultantes en el pin 2 o pin 13.
Mirando por internet, encontré Radio
watch sync en Google Play.
El problema de esta aplicación es que te deja usarla unas cuantas
veces, luego tienes que comprar la aplicación.
Esta aplicación producía un audio en el altavoz del teléfono móvil ,
era una señal senoidal al límite de la señal audible,
15,5 KHz.
Esta señal se modulaba con la codificación de DCF77.
Parece increíble, pero con el altavoz a unos centímetros del reloj,
hacía que el reloj se sincronizase con la señal DCF77.
Monté un circuito sencillo con el arduino, que generaba 15,5 KHz,
alimentando 4 transistores complementarios ,a modo de amplificador
de audio.
La señal no se modulaba en amplitud, solo se activaba o se
desactivaba.
El programa del arduino es el mismo para
RF que para audio.
Lo único que debemos hacer es comentar (RF) o descomentar (AUDIO)
,dependiendo para que lo usemos.
PROGRAMA
Como podemos observar en el video siguiente, de 4 relojes, se
sincronizaba 3, el único que no se sincronizaba era el de la marca
Oregon Scientific.
Unos relojes tardan más que otros, dependiendo de cuantas veces
comprueba si los datos son iguales.
Esa es una espina que tengo clavada, no tengo ni ideal el motivo,
pero me he tirado mucho tiempo con este circuito.
VIDEO
22/10/2024
Después un cierto tiempo, he visto que se podía mejorar el código
del arduino.
He mejorado el tiempo de interrupción de 0.1 Segundo. Me dí cuenta
que ciertos relojes exigen alta precisión, de esta forma la mayoría
de los relojes se sincronizan.
He cambiado la resistencia de la señal DCF a 4K7.
He eliminado la parte del modo del audio.
He creado un programa en Linux bajo consola para poner la fecha y la
hora automáticamente.
./dcfSerie /dev/ttyUSB0
Programa Arduino
Programa Linux
El programa en arduino admite una serie de ordenes:
HORA=
SEGUNDO=
MINUTO=
DIAMES=
DIASEMANA= (Algunos
relojes comprueban que sea correcto)
MES=
ANO=
PRINT
START
STOP
PROGRAMA GAMBAS
Este programa está realizado en Gambas(VB para Linux)
Próximamente realizaré un programa que funcione en Linux y
Windows.
Espero que os haya gustado este pequeño circuito.
Saludos.
Juan Galaz
Bibliografía:
PTB-Mitteilungen_2009_Heft_3_en
http://www.brettoliver.org.uk/DCF77_Analyzer_Clock_Mk2/Arduino_DCF77_Analyzer_MK2.htm
https://ednieuw.home.xs4all.nl/Woordklok/DCF77/DCF77_Arduino.html
https://es.wikipedia.org/wiki/DCF77
https://j-rpm.com/2019/05/transmisor-experimental-dcf77/
http://www.redesmadrid.com/?page_id=4
Radio watch sync en Google Play