Page 1 sur 1

dcf 77 + arduino

Message non luPosté: Jeu 14 Fév 2013 20:58
de nebulus
bonjour

je revient vers vous aujourd’hui car j'ai un petit souci.

j'ai acheter un module dcf 77 pour que mon arduino puisse se mettre a l'heure tout seul mes je n'arrive pas a le faire fonctionner.

pour l'instant tout ce passe dans le serial.

module dcf77 : sym-rft-77

j'ai bien la librairie funkuhr

Code: Tout sélectionner
/**
 * Example sketch for the Funkuhr Arduino library
 */
#include "Funkuhr.h"
 
Funkuhr dcf(9, 9, 9);
struct Dcf77Time dt = { 0 };
 
uint8_t curSec;
 
 
void dumpTime(void)

    Serial.println("DCF77 Time");
 
    // Print date
    Serial.print(" ");
 
    if(dt.day < 10)
        Serial.print("0");
    Serial.print(dt.day, DEC);
    Serial.print(".");
     
    if(dt.month < 10)
        Serial.print("0");
    Serial.print(dt.month, DEC);
    Serial.print(".");
     
    if(dt.year == 0)
    {
        Serial.print("000");
    }
    else
    {
        Serial.print("20");
    } 
 
    Serial.print(dt.year, DEC);
     
    if(dcf.synced())
    {
        Serial.println(" ");
        Serial.print(" ");
    }
    else
    {
        Serial.println(" ");
        Serial.print("~");
    }
     
    // Print Time
    if (dt.hour < 10)
        Serial.print("0");
     
    Serial.print(dt.hour, DEC);
    Serial.print(":");
     
    if (dt.min < 10)
        Serial.print("0");
     
    Serial.print(dt.min, DEC);
    Serial.print(":");
     
    if (dt.sec < 10)
        Serial.print("0");
 
    Serial.println(dt.sec, DEC);
     
    Serial.println(" ");
}
 
 
void setup(void)
{
    Serial.begin(9600);
    dcf.init();
}
 
 
void loop(void)
{
    dcf.getTime(dt);
     
    if(dt.sec != curSec)
    {
        dumpTime();
    }
     
    curSec = dt.sec;
}


merci de votre lecture et de vos reponse.

Re: dcf 77 + arduino

Message non luPosté: Ven 15 Fév 2013 20:29
de SesechXP
Salut,

Il semblerait que le module DCF77 en question soit à sortie inversée (http://www.pvelectronics.co.uk/rftime/SYM-RFT-XX.pdf).

Il faut donc créer l'objet Funkuhr avec le paramètre invertedSignal = true :
Code: Tout sélectionner
Funkuhr dcf(9, 9, 9, true);


++

Re: dcf 77 + arduino

Message non luPosté: Ven 15 Fév 2013 20:45
de SesechXP
Les broches utilisées posent également problème...

Le constructeur Funkuhr a le prototype suivant :
Code: Tout sélectionner
Funkuhr(uint8_t intNumber = 0, uint8_t dcf77Pin = 2, uint8_t blinkPin = 13, bool invertedSignal = false);

    Avec :
  • intNumber le numéro de l'interruption utilisée. Sur un Arduino Uno, 0 ou 1.
  • dcf77Pin l'entrée sur laquelle est connectée la sortie DCF77. Sur un Arduino Uno, 2 ou 3.
  • blinkPin la sortie sur laquelle est éventuellement connectée une LED qui clignotera en fonction de la réception DCF77.
  • invertedSignal permet d'indiquer sur le signal de la sortie DCF77 est inversée ou non. Dépend du module DCF77. Dans ton cas ce paramètre doit être à true.

En passant les arguments 9, 9, et 9 ton sketch ne peut pas fonctionner. Elle est utilisée en entrée DCF77 et en sortie pour la LED :? De plus si tu utilises un Arduino Uno, la broche 9 n'est pas une entrée d'interruption.

J'ai écrit un article sur la réception de l'heure DCF77. Tu y trouveras notamment un schéma de câblage ;)

++

Re: dcf 77 + arduino

Message non luPosté: Sam 16 Fév 2013 15:53
de nebulus
bonjour

pour les broches effectivement j'ai essayer sa en dernier recourt car j'etait a bout d'idée

j'ai remit tout sa d'origine ( Funkuhr dcf(0, 2, 13, true)

effectivement j'ai déjà vue ton post qui ma beaucoup aidez.

mes sa ne marche pas j'arrive toujours pas a obtenir une heure avec le dcf.

j'ai bien mon +5 sur la broche vdd
mon gnd sur la masse
et j'ai bien mon fils de donné qui et inverser.

par contre je travail sur un arduino mega. d'apres ce que jai put lire sur le net les sortie sont les meme que sur le uno sauf que sur le mega yen a 4 de plus.

la je suis complétement perdu.


Code: Tout sélectionner
/**
 * Example sketch for the Funkuhr Arduino library
 */
#include "Funkuhr.h"
 
Funkuhr dcf(0, 2, 13, true);
struct Dcf77Time dt = { 0 };
 
uint8_t curSec;
 
 
void dumpTime(void)

    Serial.println("DCF77 Time");
 
    // Print date
    Serial.print(" ");
 
    if(dt.day < 10)
        Serial.print("0");
    Serial.print(dt.day, DEC);
    Serial.print(".");
     
    if(dt.month < 10)
        Serial.print("0");
    Serial.print(dt.month, DEC);
    Serial.print(".");
     
    if(dt.year == 0)
    {
        Serial.print("000");
    }
    else
    {
        Serial.print("20");
    } 
 
    Serial.print(dt.year, DEC);
     
    if(dcf.synced())
    {
        Serial.println(" ");
        Serial.print(" ");
    }
    else
    {
        Serial.println(" ");
        Serial.print("~");
    }
     
    // Print Time
    if (dt.hour < 10)
        Serial.print("0");
     
    Serial.print(dt.hour, DEC);
    Serial.print(":");
     
    if (dt.min < 10)
        Serial.print("0");
     
    Serial.print(dt.min, DEC);
    Serial.print(":");
     
    if (dt.sec < 10)
        Serial.print("0");
 
    Serial.println(dt.sec, DEC);
     
    Serial.println(" ");
}
 
 
void setup(void)
{
    Serial.begin(9600);
    dcf.init();
}
 
 
void loop(void)
{
    dcf.getTime(dt);
     
    if(dt.sec != curSec)
    {
        dumpTime();
    }
     
    curSec = dt.sec;
}

Re: dcf 77 + arduino

Message non luPosté: Dim 17 Fév 2013 10:11
de SesechXP
Si on regarde le schéma de la Mega, on peut voir que :
- la LED est câblée sur la pinouille 13 ;
- INT0 est sur la 21 ;
- INT1 est sur la 20 ;
- INT2 est sur la 19 ;
- INT3 est sur la 18 ;
- INT4 est sur la 2 ;
- INT5 est sur la 3 ;
- INT6 et INT7 ne sont pas câblées (quelle connerie :evil: ).

A toi de choisir l'entrée d'interruption qui te convient :D

++

Re: dcf 77 + arduino

Message non luPosté: Dim 17 Fév 2013 13:33
de nebulus
bon après plusieurs essaie sur toute les entré d’interruptions je pense que mon module et hs car je n'arrive a rien.

ya possibilité de le tester?.

car a chaque fois la led brancher sur le pin 13 ne clignote pas quoi que je fasse enfin si elle clignote quand il fini de compiler mes après plus rien .

Re: dcf 77 + arduino

Message non luPosté: Dim 17 Fév 2013 20:21
de SesechXP
D'après la doc, ton module DCF77 possède une LED indiquant son état. S'allume-t-elle ?
As-tu ajouté une résistance de pull-up ? Elle n'est pas nécessaire avec ton module...

Re: dcf 77 + arduino

Message non luPosté: Dim 17 Fév 2013 20:44
de nebulus
oui la led reste constamment allumé et j'ai essayer avec et sans la résistance de pull-up mes sa donne rien ?