Go Down

Topic: Problème avec Tiny RTC (Read 1 time) previous topic - next topic

V20100D

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:
http://www.amazon.ca/DS1307-Real-Time-Clock-Module/dp/B00CWX6UXY/ref=sr_1_1?ie=UTF8&qid=1410915408&sr=8-1&keywords=tiny+rtc

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:
Code: [Select]
//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,

patg_

Bonjour,
Avec un DS1307 la RTCLib est plus simple à utiliser:
https://github.com/adafruit/RTClib

Je l'utilise avec un DS1307 et un DS3234.
Mes Arduineries: http://breizhmakers.over-blog.com/

68tjs

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.

fdufnews

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

bricoleau

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...
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

bricoleau

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
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

papybricol

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...
...ils embarquèrent la logique, coupèrent les cordons, alors, libérés de leurs chaînes, une immensité s'ouvrait devant eux...

Go Up