Estimados estoy usando este código:
//rtc.adjust(DateTime(horaInicio,minutoInicio,segundo,0,0,0));
// rtc.adjust(DateTime(12,30,30,0,0,0));
en el loop, en ambos casos la hora me pone : 00:00:00.
Como se debería hacer??
desde ya muchas gracias,
Saludos
Juan
No puedes poner dia, mes,año como 0,0,0
De la librería RTClib.h por ejemplo pero otras son iguales.
void RTC_DS1307::adjust(const DateTime& dt) {
Wire.beginTransmission(DS1307_ADDRESS);
Wire._I2C_WRITE((byte)0); // start at location 0
Wire._I2C_WRITE(bin2bcd(dt.second()));
Wire._I2C_WRITE(bin2bcd(dt.minute()));
Wire._I2C_WRITE(bin2bcd(dt.hour()));
Wire._I2C_WRITE(bin2bcd(0));
Wire._I2C_WRITE(bin2bcd(dt.day()));
Wire._I2C_WRITE(bin2bcd(dt.month()));
Wire._I2C_WRITE(bin2bcd(dt.year() - 2000));
Wire.endTransmission();
}
Mira las librerías jazpiroz!!
las respuestas estan delante de uno.
La fecha inicial es 1/01/1970
Aca un tutorial que puede servirte
Gracias, reviso y les cuento,
Saludos
Juan
Usa algo que le ponga dia,mes,año.
rtc.adjust(DateTime(12,30,30,1,1,70));
El reloj de un RTC debe ajustarse una sola vez y luego tu sistema debe consultarlo y corregir o sincronizar la hora de acuerdo al período de tiempo que establezcas.
Si ves la rutina Time.h de PJRC tiene ejemplos muy claros al respecto.
Mira este ejemplo TimeRTCset.ino
void setup() {
Serial.begin(9600);
while (!Serial) ; // Needed for Leonardo only
setSyncProvider(RTC.get); // Esta función hace la tarea de sincronizarse con el RTC
if (timeStatus() != timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");
}
Esta es la función clave que yo uso.
setSyncProvider(RTC.get);
Ahora mira los demás ejemplos y verás que no hace falta mas nada.