RTC DS331 : dates-heures incohérentes (mais pas toujours)

Bonjour,
J’utilise une horloge RTC pour faire des logs sur une carte sd et j’ai des dates/heures étranges. Par réduction successive, j’ai fait ce code qui ne peut être plus simple :

#include <RTClib.h> // Load clock librairy
RTC_DS3231 rtc; // pour l'horloge
void setup() {
    Serial.begin(9600);
    rtc.begin();
}

void loop() {
    DateTime time2 = rtc.now();
    Serial.println(rtc.now().unixtime()); // affiche une valeur cohérente 1620396230 ; 1620396233 
    delay(2000);
    Serial.println (rtc.now().unixtime()); // bloque à 1577750400
    delay(1000);
}

Je ne comprends absolument pas ce qui se passe…
Si j’initialise une variable DateTime avec rtc.now(), le premier Serial.println est cohérent, pas le second.
Si je ne fais pas cela, j’ai des trucs adhérents* sur les deux Serial.println
(*enfin, plutôt “inexpliqués” :slight_smile:)
Que se passe-t-il ?
Merci pour vos lumières, car là je sèche… :frowning:

Pour tester un périphérique, toujours commencer par les exemples de la bibliothèque. Si tu utilises la RTCLib d’Adafruit, commence par tester l’exemple DS3231.

As-tu vérifié la pile de la RTC ?
Quelle carte Arduino utilises-tu ?

Bon alors, effectivement, j'ai décortiqué le code sans décortiquer l'électronique...
Moralité, un fil du gnd déconnecté pour le DS3231...
Mais le comportement constaté m'interpelle quand même... J'aimerai bien comprendre pourquoi le programme se comportait comme cela...
Merci :slight_smile:

hello
relier les GND est pour fixer les potentiels à la meme reference.

imagine que tu sorte un fil de la uno, que ton prg y mette HIGH, toi tu sais que c'est 5 V . mais au bout du fil, c'est 5 V par rapport à quoi ?
dans ton cas, 'horloge reçoit bien les 5 V de la platine uno, mais elle ne le sait pas car elle n'a pas la meme ref que la uno.d'ou la nécessité de relier les GND ensemble