Go Down

Topic: Dudas uso RTClib (Read 1 time) previous topic - next topic

conander

Buenas tardes,
Tengo unas dudas acerca del uso de la libreria. He leido la documentacion oficial y los ejemplos.
Duda 1: He usado el código de ejemplo de la RTCLIB el DS1307. El sketch muestra como mediante la order RTC.adjust(__DATE__,__TIME__); coje las dos viariables del compilador y las actualiza como la hora del reloj del arduino. Para hacer mis pruebas he intentado, cambiando la hora del ordenador, reiniciando etc, falsear la hora. No he tenido éxito. Por alguna razon me deja la misma. La unica forma de trucarlo es despinchar todo de la breadboard y quitarle la pila al RTC. Así si que he podido.
¿Por que no me funciona?

Duda 2: ¿Qué argumento le tendo que pasar para poner una hora en concreto con RTC.adjust(fecha, hora) ? Que formato tienen que tener que no para de darme error?

Gracias

fm

Para ver el formato que recibe, por que no lo imprimes? Es decir, imprime __DATE__ poel puerto serie y ya conoces lo que espera la función.
   

conander

#2
Mar 09, 2013, 08:33 pm Last Edit: Mar 09, 2013, 08:58 pm by conander Reason: 1

Para ver el formato que recibe, por que no lo imprimes? Es decir, imprime __DATE__ poel puerto serie y ya conoces lo que espera la función.


:smiley-eek:
Perfect!

Serial.print("Formato: "); Serial.println(__DATE__); Serial.print(" ");Serial.println(__TIME__);Serial.println();

Da como resultado:

Formato: Mar  9 2013
20:28:40

Gracias por la idea. Ahora por que será que no me actualiza esos datos hasta que no le quito la pila al reloj???


EDITADO. Vale me respondo yo, hay un error en el programa de adafruit

Hay que cambiar esto
   if (RTC.isrunning()) {
   // following line sets the RTC to the date & time this sketch was compiled
   RTC.adjust(DateTime(__DATE__, __TIME__));
   }
   else{
   Serial.println("RTC is NOT running!");
   }

O escribirlo sin una de las llaves
  if (! RTC.isrunning())
   Serial.println("RTC is NOT running!");
   // following line sets the RTC to the date & time this sketch was compiled
   RTC.adjust(DateTime(__DATE__, __TIME__));
 
Esto es como viene.
if (! RTC.isrunning()) {
   Serial.println("RTC is NOT running!");
   // following line sets the RTC to the date & time this sketch was compiled
   RTC.adjust(DateTime(__DATE__, __TIME__));
 }

Go Up