Non copia ora esatta

Salve a tutti , ho acquistato Il modulo Tiny RTC DS1307 I2C come partenza per diversi progetti , ho trovato sul web un codice realizzato da Mauro Alfieri con il quale mi permette di visualizzare sul display lcd la data e l’ora . Una volta caricato il codice, l’anno il mese il giorno e l’ora sono corrette mentre i minuti e i secondi non lo sono ,vorrei sapere se l’ho copiato esattamente o se manca una porzione di codice. Vi ringrazio anticipatamente.
Guido

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

char buffer[10];                    
RTC_DS1307 RTC;                       
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 

void setup () {
  
  Wire.begin();                   
  RTC.begin();                     
  lcd.begin(16, 2);                  

  if (! RTC.isrunning()) {                     
    RTC.adjust(DateTime(__DATE__, __TIME__));  
  }                                            
}                                              
void loop () {
  
  DateTime now = RTC.now();                 
  lcd.clear ();
  
  sprintf(buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
  
  lcd.setCursor(0, 0);
  lcd.print( buffer );  

  char buffer[10] = ""; 

  sprintf(buffer,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
  
  lcd.setCursor(0, 1);
  lcd.print( buffer ); 

  delay(1000);

}

Cosa intendi per l'ora non corretta ?
Prova a stampare su Serial le 3 parti dell'ora anche senza formattarli per bene. E secondo me vedrai che l'output su seriale è esattamente quello del displa.
Secondo me sei tu che non imposti esattamente l'ora

RTC.adjust(DateTime(DATE, TIME)); prende l' ora del PC nel momento della compilazione.
Per questo possono esserci piccoli ritardi.

Ciao Uwe

Ciao Uwe , i riardi sono su i minuti e i secondi ,si parla di circa 7 minuti e qualche secondo . Non si può escogitare qualcosa per avvicinarsi ai minuti reali ?
Ciao Guido.

Visto che parlavi di Mauro Alfieri, sempre da lui puoi copiare lo sketch se serve per regolare l'ora.
E ti serve, visto che il DS1307 10 secondi al giorno li perde

Perché non prendere il DS3231? Precisissimo e costa una cavolata.

Hai usato una batteria ricaricabile?

Ciao droidprova
si sto usando una batteria ricaricabile LIR 2032 3,6v
Guido

Ma dopo aver sincronizzato l'orario, poi ricarichi lo sketch con le righe indicate da uwefed ma commentate?

Ciao droidprova
carico lo sketch per la prima volta e mi da un errore di circa 2 minuti , poi lo ricarico con le righe indicate da uwefed e non cambia niente.
Guido

Nel post #4 Brunello ti ha chiaramente indicato dove trovare il codice che ti serve per impostare MANUALMENTE l'ora all'interno del DS1307.

Se NON lo vuoi fare con i bottoni di quell'esempio, ti scrivi un bel programmino che legge dalla seriale data/ora e, al momento della pressione del tasto "INVIO" la memorizza all'interno del DS1307.

Il palliativo di usare le macro del compilatore per impostare data e ora ...

RTC.adjust(DateTime(DATE, TIME));

... è, appunto, un palliativo di ben scarsa precisione. Può andare bene per fare delle prove, ma poi bisogna scriversi una propria routine per regolare l'ora, anche perchè, con un DS1307 ... è cosa che, se vuoi un orario abbastanza precisio, dovra fare con una certa regolarità !

Guglielmo

gpb01:
... è, appunto, un palliativo di ben scarsa precisione. Può andare bene per fare delle prove, ma poi bisogna scriversi una propria routine per regolare l'ora, anche perchè, con un DS1307 ... è cosa che, se vuoi un orario abbastanza precisio, dovra fare con una certa regolarità !

Guglielmo

Ecco perché senza fare tutto ciò, con un DS3231 hai tutti i problemi risolti :wink: E costa una cavolata

Ciao Guglielmo,
la prima cosa che ho fatto è stata quella di scaricare lo sketch di Mauro Alfieri risolvendo cosi manualmente il mio problema. Ho risposto a droidprova solamente per correttezza a fronte di una domanda.
Guido

Guido_Laferrari:
... Ho risposto a droidprova solamente per correttezza a fronte di una domanda.

Ah ... scusa .. non si capiva, sembrava che avessi ancora il problema.
Meglio così allora !

Guglielmo