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