Mostrando entradas con la etiqueta dcf77. Mostrar todas las entradas
Mostrando entradas con la etiqueta dcf77. Mostrar todas las entradas

jueves, 24 de octubre de 2024

DCF77 - Generador de señal - Signal generator - Versión 2 - DS1302

  Página principal

DCF77
Generador de señal
Signal generator
Versión 2  - DS1302

Después de haber realizado el Generador de DCF77 con el arduino, me dí cuenta que algunos relojes no sincronizaba bien.
También me resultaba engorroso tener que
actualizar la hora mediante un ordenador, antes de emitir la señal DCF .
He visto que se podía mejorar el código del arduino y el circuito mediante:
-Mejorando 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.
-Cambiando la resistencia de la señal DCF a 4K7.
-Eliminando la parte del modo del audio.
-Se coloca una variable en compilación #define SINCRO . Según el manual DCF, la señal de DCF debe sincronizarse con el flanco de bajada de la portadora. Funciona igual con sincronización que sin ella, por lo que lo dejo a gusto de cada uno.
-La resistencia R1 es de 100 ohmios, para que module al 20%, pero también funciona si se modula al 0%, para este caso debemos colocar la resistencia a 0 ohmios.
-He colocado un pulsador para las pruebas. Si durante el arranque se tiene pulsado, carga una fecha prefijada y no la carga del DS1302.  Fecha prefijada:  7:52:50   9/10/2024 .


Esquema realizado con https://easyeda.com.

Circuito montado.


Señales generadas.


La sincronización tarda entre 2 y 5 minutos. La distancia entre el circuito emisor y los radio relojes es de 80 cm.

También he creado un programa en Linux bajo consola para poner la fecha y la hora automáticamente.
./dcfSerie /dev/ttyUSB0

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
SAVE
LOAD

Durante el arranque del circuito, espera 15 antes de empezar a emitir señal.
En el tiempo de espera de 15 segundos, si se ejecuta el programa en consola, se actualiza la hora y la fecha en el DS1302.



Programa Arduino
Programa Linux

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

domingo, 13 de octubre de 2024

DCF77 Generador de señal - Signal generator - ESP-12E ESP8266

  Página principal

DCF77
Generador de señal
Signal generator
ESP-12E   ESP8266

Después de haber realizado el Generador de DCF77 con el ESP32, he realizado el mismo circuito pero con el ESP8266, placa ESP-12E.
El ESP8266 es el hermano pequeño del ESP32, no tiene bluetooth ni doble procesador, pero para este montaje no hace falta.
Voy a utilizar el programa de 
https://github.com/SensorsIot/DCF77-Transmitter-for-ESP32  , pero con alguna modificación para que funcione con el ESP8266.

Para generar la señal de 77.5 KHz he utilizado:
analogWriteFreq(FRECUENCIA);
analogWrite(OUT_DCF, 128);
No es que sea muy fiable, he tenido que configurar al variable #define FRECUENCIA 76190  para que genere 77.5 KHz.
En ESP8266 no existe ledcAttach(ANTENNAPIN, FRECUENCIA, RESOLUCION);

Montado todo funcionaba bien, solo debía configurar mi red wifi cambiando los valores en:
// Wifi credentials
const char* ssid = "yourSSID";
const char* password = "yourPassword";

Respecto al anterior circuito he quitado el display OLED.

Esquema realizado con https://easyeda.com.


El que haya realizado montajes con estos módulos, se habrá vuelto loco con los pins.
Esta es la relación de los diferentes pins.










Antes

Después

Con la prueba que he realizado  me funcionan todos lo relojes radio-controlados.

PROGRAMA

VIDEO

------------------------------------------------


Para los que quieran colocar un OLED el diagrama es el siguiente.

PROGRAMA
He de comentar que me dio bastantes problemas, las rutinas del display  deben interferir los tiempos de la interrupción, me costó tiempo averiguarlo.
Por lo cual solo se utiliza al principio para ver la IP y el día, en cualquier otra parte del programa induce a error en los tiempos, y los relojes no se sincronizan.
Si leemos en el manual "
El ESP8266 no tiene pines I2C de hardware, pero se puede hacer mediante "bitbanging". Funciona bastante bien y el ESP8266 es lo suficientemente rápido como para igualar la velocidad del 'nivel Arduino'. ".
Este es el motivo de que no se pueda utilizar el BUS I2C en el ESP8266 en este montaje.


Espero que os haya gustado este pequeño circuito.


Saludos.
Juan Galaz



Bibliografía:


https://github.com/SensorsIot/DCF77-Transmitter-for-ESP32
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