Problème avec Tiny RTC

Bonjour les Arduiniens,

J'ai récemment acheté un TinyRTC afin de pouvoir afficher l'heure actuel lors de la prise de donné. J'ai voulu l'essayer avec un programme simple, mais rien ne fonctionne.

J'ai acheté un TinyRTC I2C DS1307:

J'ai trouvé un code sur internet, mais le résultat est toujours le même : 165/165/165 45:165:165 dans le moniteur de série

Voici le code:

//Arduino 1.0+ Only
//Arduino 1.0+ Only

#include "Wire.h"
#define DS1307_ADDRESS 0x68

void setup(){
  Wire.begin();
  Serial.begin(9600);
}

void loop(){
  printDate();
  delay(1000);
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

void printDate(){

  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);

  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  //print the date EG   3/1/11 23:59:59
  Serial.print(month);
  Serial.print("/");
  Serial.print(monthDay);
  Serial.print("/");
  Serial.print(year);
  Serial.print(" ");
  Serial.print(hour);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.println(second);

}

Est-ce que quelqu'un pourrait m'aider à faire fonctionner le RTC. Le SCL est connecté à A5 et SDA à A4.

Merci beaucoup,

Bonjour,
Avec un DS1307 la RTCLib est plus simple à utiliser:

Je l'utilise avec un DS1307 et un DS3234.

Vérification de base : s'il y a une pile de sauvegarde est-elle bonne ?

Cette bête là peut fonctionner sans pile de sauvegarde mais déteste avoir une pile épuisée.

Est-ce que la RTC a été mise à l'heure au moins une fois?

Petite recherche google "ds1307 165/165/165"

Vu en diagonale : pb de voltage d'alim du DS1307 qui ne te retourne rien, et comme ton code ne comporte aucune gestion d'erreur...

Autre possibilité "à la noix" : tu utilises peut-être une carte arduino sur laquelle SCL et SDA ne sont pas sur les mêmes pin, par exemple une MEGA

Bonjour,

une piste pour les "165.............."

Ce module exige un accu LIR2032 (3.6V) et non pas une pile CR2032(3V).
La batterie est dans un circuit de charge qui accorde les 2/3 de la tension au DS1307.
Celui-ci se coupe si on lui fournit moins de 2V...