Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
16 mai 2012 3 16 /05 /mai /2012 22:11

Un récepteur DCF77 se trouve pour une dizaine d'euros, plus frais de port.

J'avais lu quelque part qu'on peut trouver chez les soldeurs des horloges radio-pilotées pour moins cher que ça et en récupérer le récepteur DCF77.

 

Je suis donc passé chez un soldeur et j'y ai trouvé une "station météo", enfin une horloge-thermomètre radio-pilotée, pour 7€, soit moins que le prix d'un récepteur DCF77!

Bon je dirais "thermomètre" avec des guillemets car il y a 1° d'écart entre la sonde intérieure et extérieure quand elles sont côte à côte, et autant avec un autre thermomètre de référence... Bref un truc qui vaut le prix qu'il coûte!

 

J'ai donc ouvert la chose et:

 

2012 05 15 4016

Je ne pouvais espérer mieux. Le récepteur DCF77 est sur une breakout-board et le brochage est même indiqué sur le circuit imprimé!

 

Un petit coup de pompe à dessouder plus tard, et le circuit est sur ma breadboard:

 

2012 05 16 4015

C'est là que les choses se compliquent.

 

Après avoir essayé 3 librairies de décodage du signal DCF77 j'opte pour Funkurh.

Elle a l'avantage d'utiliser les interruptions (mais pas tout à fait comme je le souhaiterais).

J'essaie différents trucs, rien à faire...

Heureusement je trouve cet article qui propose un mini-oscilloscope pour vérifier la réception du signal DCF77.

Je vois que la réception est effectivement très dépendante de l'oritentation de l'antenne!

Après avoir trouvé le bon réglage et fait quelques modification à la librairie Funkurh, j'obtiens enfin l'heure transmise!

Il faut plusieurs minutes pour recevoir une trame correcte, mais ça marche.

 

J'ai dû modifier la librairie pour ne pas inverser le signal d'entrée (le récepteur utilisé par le développeur de la librairie nécessite un transistor pour amplifier le signal de sortie, ce qui l'inverse au passage).

 

Je l'ai aussi modifiée pour:

-Utiliser l'interruption INT0 non seulement pour détecter les fronts du signal reçu, mais aussi pour le décoder. Ce décodage est inialement fait dans la fonction getTime et je ne souhaite l'appeler que quand j'en ai besoin, et non toutes les millisecondes ou presque.

-J'ai aussi supprimé l'utilisation du TIMER 2 car d'une part j'ai besoin de ce timer pour un autre usage, et d'autre part je n'ai pas besoin de connaitre les secondes (et si j'en ai besoin j'ai une horloge RTC).

 

Voilà pour le radio-pilotage.

Prochaine étape, l'intégration de l'horloge RTC.

Partager cet article

Repost 0
Published by breizhmakers - dans horloge
commenter cet article

commentaires

HOHM 11/06/2017 18:45

bonjour
trés interesser par ton circuit tu peu me dire si tu as fini et si cela marche
d'avance merci