Problème heure avec ds1307

bonjours je débute dans l'Arduino et j'essaye de faire une horloge avec un écran lcd et un rtc ds1307 mais le problème et que une heure s'affiche mais elle reste fixe et ce n'est pas la bonne



#include <LiquidCrystal.h>
#include <Wire.h>
#include <RTClib.h>


RTC_DS1307 RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  Wire.begin();
  RTC.begin();
  lcd.begin(16, 2);
   RTC.adjust(DateTime(__DATE__, __TIME__));
}

void loop() {
  
  DateTime now = RTC.now();
 
  
  // l'heure sur la premiêre ligne du LCD
  lcd.setCursor(0, 0);
  lcd.print(now.hour());
  lcd.print(":");
  if (now.minute() < 10) {
    lcd.print("0");
  }
  lcd.print(now.minute());
  lcd.print(":");
  if (now.second() < 10) {
    lcd.print("0");
  }
  lcd.print(now.second());
  
  
  // la date sur la deuxième ligne du LCD
  lcd.setCursor(0, 1); 
  lcd.print(now.day()); 
  lcd.print(" "); 

  switch (now.month()) {
  case 1:
    lcd.print("janvier");
    break;
  case 2:
    lcd.print("fevrier");
    break;
  case 3:
    lcd.print("mars");
    break;
  case 4:
    lcd.print("avril");
    break;
  case 5:
    lcd.print("mai");
    break;
  case 6:
    lcd.print("juin");
    break;
  case 7:
    lcd.print("juillet");
    break;
  case 8:
    lcd.print("aout");
    break;
  case 9:
    lcd.print("septembre");
    break;
  case 10:
    lcd.print("octobre");
    break;
  case 11:
    lcd.print("novembre");
    break;
  case 12:
    lcd.print("decembre");
    break;
  }
  lcd.print(" "); 
  lcd.print(now.year()); 
  delay(1000);
  lcd.clear();
}


:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

Est-ce qu'elle a été mise à l'heure un jour?

ceci devrait la mettre à l'heure de la dernière compilation


@mts_76
on voit rien sur la photo, mettez un dessin du circuit

je n'est pas de dessin mais j'ai fait avec ce site ; Électronique en amateur: Une horloge pour votre Arduino (Real Time Clock)

Bonjour mts_76

L'exemple, sur ce site est avec un UNO et tu utilises un Mega, le bus i2C n'est pas sur les mêmes broches:
Le UNO
image
Le Mega:
image

Le plus souvent, sur ces 2 cartes, il y a des broches marques pour l'i2C,SDA et SCL:
Le UNO:
image
Le Mega:
image

PS: Dès la première mise à l'heure de ta RTC, cette ligne:
RTC.adjust(DateTime(__DATE__, __TIME__));
est à mettre en remarque (//), sinon, à chaque reset de l'Arduino, la RTC va se mettre à l'heure et à la date de la dernière compilation!

Cordialement
jpbbricole

donc si je comprend bien j'ai juste a brancher mon rtc sur les pin scl et sda et sa devrait marcher ou non le code n'est pas compatible non plus ?

J'ai test et toujours la même chose j'ai l'heure mais pas la bonne et cella ne bouge pas

"Test" quoi?

Expliquez vos branchements et postez le code

hello,
mega: I2C=> 20, 21 et vérifier avec un scan

j'ai juste a brancher mon rtc sur les pin scl et sda Avec le même code

Vous avez joint les GND?

Un schéma à la règle et au crayon, vous faites une photo et postez…

Le E -> 11 pas très compréhensible sur le schéma

ca marche pendant que j'ai fait le schéma le rtc a du faire un truc car l'heure est bonne

Bonsoir mts_76

Pour tester tes liaisons, télécharges le scanner i2C.

Dans la console à 9600, que vois tu?

A+
Cordialement
jpbbricole

Bonsoir mts_76

Super!

Surtout n'oublies pas ça!

Cordialement
jpbbricole

Je l’ai bien mis en commentaire encore merci et je vais test quand même le scanner ça a l’air intéressant

Bonsoir mts_76

Le scanner i2C est l'outil indispensable, dès que l'on fait de l'i2C, ce qui est très courant dans le monde de l'Arduino.

Bonne continuation :wink:

Cordialement
jpbbricole

1 Like