Ciao a tutti,
sto avendo un piccolo problema con il modulo RTC pre-assemblato.
Tale modulo è collegato al mio ArduinoMega e serve per azionare alcuni relè nel determinato orario.
Nel dettaglio, non si sincronizza al pc dopo aver compilato lo sketch e purtroppo ho dovuto fare un "mageggio" per renderlo effettivo.
Utilizzo la libreria "RTClib.h" ed è collegato tramite I2C.
Nel Setup ho impostato il seguente codice:
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is running!");
RTC.adjust(DateTime(__DATE__, __TIME__));
}
Mentre nel loop
if ( RTC.isrunning()) {
Serial.begin(9600);
Serial.println("####################");
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(1000);
int _hour = now.hour();
int _minute = now.minute();
Purtroppo anche se ho fatto mille prove di compilazione per allineare l'orario al pc, dal monitoring noto che mi restituisce il seguente orario:
2019/10/22 9:6:49 mentre l'orario corretto era 2019/10/25 23:06:35
Pertanto per aggiornarlo al vero orario ho dovuto fare questo giochetto:
if ( _hour > 9 ) {
hourminute = ((_hour*100)+(_minute - 1000));
Serial.print("ORE-MINUTI MAGGIORE DELLE 9 - 10:");
Serial.println(hourminute);
} else {
hourminute = ((_hour*100)+(_minute + 1400));
Serial.print("ORE-MINUTI MAGGIORE DELLE 9 + 14:");
Serial.println(hourminute);
}
con il seguente log nel monitoring.
####################
2019/10/22 9:6:49
ORE-MINUTI MAGGIORE DELLE 9 + 14:2306
Ora la mia domanda anche se ovvia, Come lo risolvo tale problema, visto che leggendo i post non riesco a trovare una soluzione.
Vi chiedo aiuto.