Pages: [1] 2   Go Down
Author Topic: DS1307  (Read 4476 times)
0 Members and 2 Guests are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je vient d'acheter un module DS1307, le quartz 32.768 MHZ, une pile 3V CR2032 et son coupleur.
J'ai tout installer avec les deux résistances de 10k entre les bornes 7 et 8 et l'alimentation 5V.
La borne 7 est relié au port numérique 0 et la borne 8 au port numérique 8.

J'ai installer ces librairies.
J'ai juste modifier la ligne:
#include <../Wire/Wire.h>
par
#include <Wire.h>

Et essayer le ds1307_test qui y est associer.
Il compile, nickel!

Maintenant mon problème c'est que cela ne marche pas!
Je pense qu'il s'agit probablement d'un problème de paramétrage de mes entrée numérique 0 et 1 mais je ne vois pas où il faut que je modifie le code dans le test.

Je vous avait prévenu je débute, depuis deux semaines! smiley-wink


Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut nico,

Pour ma part j'ai utilisé la libraire DS1307 :

http://code.google.com/p/ds1307/

voici le code que j'utilise :

Code:
#include <DS1307.h>
#include <WProgram.h>
#include <Wire.h>

// Pour l horloge
int rtc[7];
int heure;
int minute;
int seconde;
int jour;
int mois;
int annee;
int calendrier;


void setup() {
 //reglage horloge
 /*
  RTC.stop();
  RTC.set(DS1307_SEC,1);
  RTC.set(DS1307_MIN,46);
  RTC.set(DS1307_HR,18);
  RTC.set(DS1307_DOW,2);
  RTC.set(DS1307_DATE,3);
  RTC.set(DS1307_MTH,8);
  RTC.set(DS1307_YR,10);
  RTC.start();
 */
}

void loop() {
 RTC.get(rtc,true);
    for(int i=0; i<7; i++)
      {
      heure=rtc[2];  
      calendrier=rtc[3];
      jour=rtc[4];
      mois=rtc[5];
      annee=rtc[6];
      minute=rtc[1];
      seconde=rtc[0];
      }
Serial.print(" ");
    if (jour < 10)
      {
      Serial.print("0");
      }
    Serial.print(jour);
    Serial.print(" ");
    if (mois < 10)
      {
      Serial.print("0");
      }
    Serial.print(mois);
    Serial.print(" ");
    Serial.print(annee);
    Serial.print("   ");
    if (heure < 10)
      {
      Serial.print("0");
      }
    Serial.print(heure);
    Serial.print(":");
    if (minute < 10)
      {
      Serial.print("0");
      }
    Serial.print(minute);
    Serial.print(":");
    if (seconde < 10)
      {
      Serial.print("0");
      }
    Serial.print(seconde);
    Serial.println("   ");
delay(1000);

}

Pour le montage, pas besoin de resistance,
regarde ce topic:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057/90

Envoi moi un mp si t'as des soucis

@+
Benoit
« Last Edit: August 18, 2010, 02:04:23 am by Poliben » Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3009
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Envoi moi un mp si t'as des soucis
Ouai c'est sympa pour lui mais en même temps le principe des forums c'est de partager ses problèmes/solutions pour en faire profiter le plus grands nombre. Si vous continuez dans votre coin peut être demain (ou après demain) un autre va passer et reposer la même question ou retomber dans le même piège.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ton intervention très à propos et complètement en rapport avec le sujet mais sache qu'on communique sur un autre forum dédié aux orchidées. Ton intervention est très constructive. Merci.

Je te ferai remarquer que j'ai répondu et indiqué la librairie, le code et les sources que j'ai utilisé.

Bien Cordialement.
« Last Edit: August 17, 2010, 03:55:37 pm by Poliben » Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3009
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Bien Cordialement.
smiley-wink pas si cordial

Ma remarque c'était juste pour dire que si nicop rencontre un problème un autre peut aussi le rencontrer et que donc c'est plus constructif de continuer sur le forum. C'est tout et on en reste là.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Re,

Je comprends ta remarque, mais si tu as 2 minutes à perdre (ou pas), tu peux jeter un coup d'oeil au sujet que j'ai ouvert concernant mon projet

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1274796681

Et tu pourras constater par toi même que j'ai systématiquement rendu public, les solutions aux problèmes que j'ai pu rencontrer. D'autre part, j'ai été modérateur de plusieurs forum et donc je connais très bien leur vocation. Mais, Merci de m'avoir rafraichit la mémoire.

Pour ce qui est de la cordialité, tu pourras voir que je commence tous mes posts par un bonjour et les termine par un merci en signant. Ce n'était pas vraiment le cas dans ton intervention.

Ceci dit je suis entièrement d'accord avec toi, on peut refermer la parenthèse.  smiley-wink

@+
Benoit
« Last Edit: August 18, 2010, 05:53:44 am by Poliben » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon j'ai résolu le problème! smiley-grin

Il s'agissait effectivement comme je le présentais d'une erreur de branchement sur les ports de l'arduino.

Le connecteur 7 de l'horloge doit être mis sur le port analogique 5.
Le connecteur 8 doit être mis sur le port analogique 4.

Part contre le code que tu m'a donner Poliben ne fonctionne pas chez moi. J'ai utilisé celui qui se trouve avec les librairies dans le lien que tu m'a mis dans ta première réponse. J'ai d'ailleurs finalement utilisé les librairies de ce lien à la place des librairies que j'avais trouvé précédemment.

Merci au passage à tous de votre aide. smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En fait non, cela ne fonctionne pas encore correctement.
L'heure va beaucoup trop vite.
Après 10 minute elle avance d'environ 3 minutes.

Cela viendrait'il de mon quartz 32.768 MHZ et d'un réglage à réaliser quelque part?
Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3009
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Cela viendrait'il de mon quartz 32.768 MHZ et d'un réglage à réaliser quelque part?
L'erreur semble trop importante pour que se soit une dérive du quartz.

En jetant un oeil à la doc du DS1307 http://pdfserv.maxim-ic.com/en/ds/DS1307.pdf, je vois 2 possibilités:
  1) quartz mal adapté. La précision de oscillateur intégré au DS1307 est garantie si celui-ci et couplé avec un quartz ayant des caratéristiques bien définies (voir la doc).
  2) ils évoquent une possibilité d'accélération de l'horloge si il y a un couplage entre l'oscillateur à 32768Hz et du bruit généré par les circuits voisins.

Les causes les plus probables de bruit peuvent être:
     1) Proximité avec un circuit "bruyant"
     2) Bruit réinjecté par les alimentations
     3) Mauvaise implantation du quartz 32768Hz.

Pour le 1 et le 2, l'horloge de l'arduino peut être la cause du bruit. Il faut commencer par regarder si l'alimentation de ton DS1307 est bien découplée, condensateur  d'environ 10nF sur ses broches d'alimentation. Eviter de placer le DS1307 trop près du quartz de l'arduino.

Pour le 3, liaison entre ton quartz 32768 et le DS1307 la plus courte possible.

Sur la broche 7 du DS1307 tu peux aiguiller une division de la fréquence générée par l'oscillateur. Si tu peux avoir accès à un fréquencemètre cela te permettrait de vérifier la fréquence de l'oscillateur.
« Last Edit: August 18, 2010, 09:33:24 am by fdufnews » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Après avoir avancé, l'horloge s'est mis à prendre du retard puis finalement l'heure et la date ont été réinitialisé. l'horreur quoi!

Il n'y a pas de condensateur sur les broches d'alimentation de mon DS1307. Je n'avait vu nulle part qu'il fallait en mettre. Je suis quitte à allez en acheter. Donc condensateur 10nF, polarisé j'imagine?

La liaison entre mon quartz et le DS1307 est très courte.

J'ai pris ce quartz de 32,768 MHZ.
Il ne convient pas?

le DS1307 est à 3 / 4 cm de l'arduino, il est utile que je l'éloigne davantage?
Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3009
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Il n'y a pas de condensateur sur les broches d'alimentation de mon DS1307. Je n'avait vu nulle part qu'il fallait en mettre. Je suis quitte à allez en acheter. Donc condensateur 10nF, polarisé j'imagine?
Je pense que c'est la première chose à faire.
10nF céramique non polarisé

Le quartz semble adapté puisque dans la doc Maxim ils indique une charge de 15pF
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Condensateur 10nF céramique non polarisé commandé!
Suite fin de semaine prochaine.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai fait un essais avec une alimentation 5V externe à l'Arduino, donc à priori sans bruit.

Cela ne fonctionne toujours pas. >smiley-sad

Mon quartz est énorme comparé à ceux que j'ai vu sur les photos de montage disponible sur google, donc je vais aussi en commander d'autres modèles (pas disponible en magasin) pour faire des essais.
Logged

Belgium
Offline Offline
Jr. Member
**
Karma: 1
Posts: 80
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

c'est pas 32kHz plutot que 32 Mhz ? :smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bien vu Gosaki, tu vient de trouver mon erreur!
Merci beaucoup! :-*

Je doit être blond, ce n'est pas possible de faire une erreur aussi grossière. >smiley-sad

En tout cas je conserve l'idée du condensateur, vue nul part ailleurs, cela limiteras peut être les dérives du au bruits.

Pour clore ce post je met une image capturé sur Google du montage théorique sans condensateur et je remet le lien donné par Poliben plus haut pour les librairies et le code ainsi qu'un lien pour le téléchargement de la notice de ce composant:


Et au moins ceux qui taperont DS1307 dans le moteur de recherche français sauront ce qu'il faut faire et surtout ce qu'il ne faut pas faire. smiley-wink
« Last Edit: August 20, 2010, 03:04:56 pm by nicop » Logged

Pages: [1] 2   Go Up
Jump to: