DS1307 rtc verliest tijd na spanning verwijderen

Hoi,

Ik had als eerste projectje een sturing voor het deurtje van mijn kippenhok gemaakt. Dit op basis van een LDR met een weerstand. Dit werkt niet nauwkeurig genoeg naar mijn gevoel en is afhankelijk van teveel factoren.

Nu ga ik alles aanpassen naar een sturing gebaseerd op sunset/sunrise met behulp van de Dusk2dawn library. De oorspronkelijke sketch maakte gebruik van een DS3231 rtc. Deze had ik niet meer liggen en heb in de plaats een DS1307 gebruikt. Hier en daar wat aangepast en bij het wegschrijven geeft de serial monitor de juiste tijd en datum weer. Ik maak gebruik van de RTClib library.

Wanneer ik de arduino van de usb haal en bv 5 minuten later weer aansluit, de serial monitor open dan geeft hij de tijd weer maar gaat gewoon verder bij de tijd zoals wanneer de spanning eraf is gehaald -5 minuten dus. Ik heb het batterijtje gecontroleerd en die geeft 3,7V.
Is er iets mis met mijn RTC module of zit er een foutje in de sketch?

Ik ben nog onervaren helaas, maar we leren iedere keer een beetje bij.
Al wat lopen testen met een paar dingen uncomment te zetten maar geen verschil.

rtc.begin();
  // Lets just set the date/time every time we upload a debug build, since we know the RTC module is good with a good battery.
  if (debug)
  {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
  Serial.println("Checking RTC is Running");
  if (!rtc.isrunning()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
   // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
   // if (debug) {
   //   Serial.println("Set Date/Time");
   //   rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
   // }

in je start van je arduino zet hij de tijd en dat moet echt alleen maar als je de RTC opstart.

zoals ik het zie is dat je de tijd hebt ingesteld en deze naar je arduino gestuurd .
nu moet je dit een tweede maal doen maar dan // voor de instellingen voor tijd en of datum
en dan stuur je hem nogmaals , dan zal hij werken .
dit komt omdat de setup een maal gelezen wordt tijdens het opstarten, en hier staat dus de ingestelde tijd.
en daar om als je de ingestelde tijd laat staan ziet hij dit en gebruikt ze