Probleme RTC

bonjour à tous,

je voudrais utiliser le RTC dans mon code.
donc j'ai telechargé la lib RTClib, avant de l'inclure à mon projet j'ai eu l'idée de tester l'exemple pour me familiariser avec le module et etre sur que ca marche.
malheuresement je compile et je televerse à mon arduino uno et là j'ai cela en port serial :

ÉH[&⸮⸮⸮⸮⸮CF⸮B⸮⸮	S⸮BK;⸮2BB⸮3⸮⸮CC⸮⸮⸮C⸮ӣ⸮Z2:⸮١BF⸮G⸮G⸮CJ⸮2R⸮⸮⸮⸮⸮	ÉB6⸮⸮⸮⸮CB"2⸮s⸮⸮⸮NHF⸮G⸮⸮׉ѡ⸮⸮⸮M⸮FCB⸮⸮<\C⸮E⸮⸮⸮⸮⸮⸮O:2BC*2⸮>⸮L⸮BIG⸮GBxBƁ⸮⸮SAR⸮⸮CF⸮B"⸮B4⸮⸮C⸮⸮ᑣ⸮M⸮FCB⸮⸮<XC⸮E⸮⸮⸮⸮⸮W~BO;⸮2BB⸮3⸮⸮>⸮L⸮JIG⸮GBxBƁ⸮١BF⸮G⸮G⸮CJ⸮2R⸮L⸮١⸮⸮I⸮FCB⸮⸮⸮⸮G⸮⸮ѡ⸮⸮FQFC⸮⸮⸮<\⸮⸮⸮⸮⸮ѡ⸮⸮F⸮F⸮CJ⸮CR⸮⸮⸮⸮⸮⸮BC⸮C⸮B⸮⸮⸮⸮⸮⸮⸮O:BC*2⸮sAR⸮⸮A⸮⸮B"z⸮׉١⸮⸮I⸮FC⸮J⸮CRA⸮⸮⸮
⸮H_&BG⸮⸮Ɖ⸮⸮⸮⸮3⸮⸮JIG⸮G⸮B⸮⸮⸮١BF⸮G⸮G⸮CJ⸮2R⸮⸮⸮⸮⸮	ÉB6⸮⸮⸮⸮CB"0⸮s⸮⸮⸮NHF⸮G⸮⸮׉ѡ⸮⸮F⸮F⸮CJ⸮CR⸮⸮⸮⸮⸮⸮BC⸮C⸮B⸮⸮>⸮L⸮BIGFCBxBƁ⸮⸮sAR⸮⸮A⸮⸮B"z⸮׉ѡ⸮⸮M⸮FC⸮⸮⸮<\⸮⸮E⸮⸮⸮⸮⸮⸮BO;⸮2BB2⸮>⸮L⸮BIGFCBxBƁ⸮⸮⸮H҉BKGFCB⸮BƁ⸮⸮s⸮⸮NHF⸮G⸮⸮׉ѡ⸮⸮⸮M⸮FCB⸮⸮<\C⸮E⸮⸮⸮⸮⸮⸮BO;⸮2BB3⸮⸮3⸮⸮JIG⸮G⸮B⸮⸮⸮١BB⸮R⸮G⸮CJ⸮2S⸮L⸮⸮⸮
⸮H_&BG⸮⸮Ɖ⸮⸮⸮⸮3⸮!:⸮NHG⸮G⸮B⸮⸮⸮CCBG⸮S
⸮⸮ӣ⸮R0S⸮⸮١BF⸮G⸮G⸮CJ⸮2R⸮⸮⸮⸮⸮⸮CC⸮J⸮C⸮⸮⸮⸮҉BKGFCB⸮BƁ⸮⸮s⸮⸮JHF⸮G⸮⸮׉ѡ⸮⸮F⸮FC⸮⸮⸮<⸮⸮G⸮⸮⸮⸮⸮BC⸮C⸮B⸮⸮>⸮L⸮BIG⸮GBxBƁ⸮⸮s⸮!:⸮NHG⸮G⸮B⸮׉CCBG⸮E
⸮⸮ӣ⸮R0S⸮⸮SGA⸮S
⸮

le code de l'exemple :

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include "RTClib.h"

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {
  while (!Serial); // for Leonardo/Micro/Zero

  Serial.begin(57600);
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
     rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
}

void loop () {
    DateTime now = rtc.now();

    Serial.print(now.year());
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");

    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));

    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();

    Serial.println();
    delay(3000);
}

pour le cablage : j'ai bien mis : Data vers SDA , SLC vers CLK

Merci d'avance.

j'ai oublié de préciser qu'il s'agit d'un rtc ds1307

Bonjour,

Vérifies que la vitesse de ton terminal série est bien configurée.

Oui, tu la définis ici dans ton code :

Serial.begin(57600);

Il faut choisir le même débit dans le menu déroulant en bas de la console série

Ah oui ! Merci beaucoup.

j'ai un autre soucis, mon rtc ne fonctionne pas, est ce que vous avez une idée de quoi ca peut etre ?

Qu'est ce que tu entends par "ne fonctionne pas" ?

sur la fonction setup, il ya la condition :

if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
     rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

Et alors?

Est-ce qu'il y a bien une batterie connectée à la RTC?
La DS1307 n'aime pas fonctionner sans la batterie.

+1, déjà remarqué avec un DS1307 livré avec une pile HS.

C'est surtout spécifié dans la datasheet de la DS1207

Battery voltage must be held between the minimum and maximum limits for proper operation.

La tension de la batterie doit être maintenue entre les limites minimale et maximale pour un fonctionnement correct.

(soit entre 2V et 3,5V)

Merci pour vos reponse !

j'ai bien mesuré le voltage de la pile , il est à 2,8 v mais j'ai toujours le probleme, sauf si le module est HS ...

On ne sait toujours pas quel problème exactement.

j'arrive pas à faire fonctionner le DS1307; meme pas avec l'example fournit avec la lib

Lis les messages épinglés en haut du forum : l'un d'eux explique les données à fournir pour qu'on puisse t'aider. Précise ton matériel, branchement, code, etc.

lgabed420:
j'arrive pas à faire fonctionner le DS1307; meme pas avec l'example fournit avec la lib

P**ain, c'est quand même pas difficile de décrire ce qui se passe.
Est ce que tu as un message affiché? si oui lequel?
Est ce que l'heure est incorrecte?
...

Oulaaaa on se calme un peu non ?
c'est pas parce que tu m'aides que tu vas me manquer du respect :wink: je prefere ne pas avoir de repondre que entendre des Pu**ain ... En plus depuis toute a lheure je vous explique mon probleme j'ai le message " RTC .. is not running" et j'ai donné le code , le branchement et le materiel, soyez un peu gentil messieurs, on est là pour apprendre :wink:

je reformule tout :

(voltage pile 2,8 V)

le material : arduino UNO , module RTC DS1307
branchement :Data vers SDA , SLC vers CLK
code : voir ci-dessous
Problemes : j'arrive pas à afficher l'heure, ca bloque sur la condition de la fonction setup() :

 if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

Un petit coup d'I2C-scanner pour commencer ?

J'ai effectué le I2C Scanner et le resultats : il detecte aucun device I2C

branchement :Data vers SDA , SLC vers CLK

C'est quoi ces libellés ? Il n'y a pas de pins marquées "SDA" ou "SCL" sur une Uno : ce sont les A4 et A5

  • SDA A4
  • SCL A5
    Est-ce ce que tu as fait ?