Go Down

Topic: DS1307 - No guarda la hora (Read 3392 times) previous topic - next topic

davisss

Hola compañeros.


Recientemente he comprado el modulo reloj DS1307. Es igual que este http://www.ebay.es/itm/DS1307-Real-Time-Clock-Module-I2C-/221292455555?pt=LH_DefaultDomain_186&hash=item33860ee683.


El problema que me he encontrado es que con la pila puesta (CR2032) , el reloj no conserva la hora. Es como si la pila no estubiese haciendo nada. Porque se la quito y hace el mismo funcionamiento. La plaquita del reloj parece estar en buen estado.

¿A alguien más le ha ocurrido los mismo?

Un saludo, muchas gracias



maxid

#1
Oct 25, 2013, 01:05 pm Last Edit: Oct 25, 2013, 02:31 pm by maxid Reason: 1
Edito, no son 2 relojes es una memoria y un reloj, controlá la alimentacion de la pila en el pin 4
El que pregunta aprende, el que responde aprende a responder.

Cheyenne

Recuerda también (no sé si lo sabes o no) que la primera vez que ejecutas el código tienes que actualizarle la hora actual (valga la redundancia) y a continuación tienes que comentar la línea de código para que ya no lo actualice más. Si no lo haces cada vez que ejecutas el código estás reseteando la hora.
http://cuadricopterodiyarduino.blogspot.com/

davisss

Gracias por las respuestas.

(Maxid) -  Si se que uno de los chip es es reloj y el otro la memoria.
(cheyene) -  Si tengo puesto que al compilar me sincronice la hora con el PC y lo hace estupendamente y funciona sin ningún problema (con o sin pila puesta). Pero al quitar la alimentacion al modulo y conectarla otra vez el reloj no conserva la hora que deberia tener y iniciar otra vez con la que se sincronizo con el pc ( a la hora de compilarlo).

A la pregunta de descomentar la linea, lo hago.

Voy a probar si el pin 4 tiene tensión al desconectar la alimentacion del arduino, que me parece que el problema puede ser que, la pila no alimente conrrectamente el circuito para hacer funcionar el reloj cuando no tiene alimentación directa. He utilizado dos pilas nuevas para descartar el problema de la pila.


Muchas gracias, si os ocurre cualquier cosa, compartirla, me vendra bien para resolver de donde viene el problema.

¿teneis este mismo modulo funcionando correctamente?, he pensado comprar otro.

Un saludo.

davisss



Entre el Negativo de la Pila y la patilla 3 del ds1307 tengo 2.58v ¿es correcto?
Entre el Positivo de la Pila y la patilla 4 del ds 1307 tengo 3.60 v ¿es correcto?


que opinais?


maxid

me parece mucha caida de tension, perdon pero me equivoque de pin el 4 es gnd.
Pero por lo visto hay algo que consume de mas.
Prueba solo sin conectar a nada que tensiones tienes
El que pregunta aprende, el que responde aprende a responder.

davisss

Na no te preocupes maxid.

He medido Polo negativo y la patilla 3 del ds1307 y me da 3.25v.

maxid

la pila se ve que esta bien, tiene que ser algo del codigo. poste el codigo quizas encontremos algo
El que pregunta aprende, el que responde aprende a responder.

davisss

//---------------------- Recopilacion de información-------------------------

Solamente con la pila puesta (arduino desconectado):

Entre el Negativo de la Pila y la patilla 3 del ds1307 tengo 2.58v
Entre el Positivo de la Pila y la patilla 4 del ds 1307 tengo 3.59 v


El arduino funcionado sin pila conectada.

He medido Polo negativo y la patilla 3 del ds1307 y me da 3.25v.


-----------------------------------------------------------------

¿NO deberia tener cuando desconecto el arduino 3.25v?

El codigo es casi identico al del ejemplo.

Quote

#include <Wire.h>  // Incluye la librería Wire
#include <RTClib.h> // Incluye la librería RTClib
RTC_DS1307 RTC; // Crea el objeto RTC
 
void setup () {
Serial.begin(9600); // Establece la velocidad de datos del puerto serie
Wire.begin(); // Establece la velocidad de datos del bus I2C
RTC.begin(); // Establece la velocidad de datos del RTC
RTC.adjust(DateTime(__DATE__, __TIME__));
}
 
void loop () {
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
 
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); // La información se actualiza cada 1 seg.
}



gracias nuevamente.

maxid

creo que no es necesario esto
RTC.adjust(DateTime(__DATE__, __TIME__)); salvo que este conectado al pc.
podrias poner

If Serial.available()
  RTC.adjust(DateTime(__DATE__, __TIME__));

Eviste una funcion rtc.timeNotSet para saber si nunca se puso en hora, llamas a la sincronizacion.

aca te dejo algunas paginas de referencia
http://playground.arduino.cc/Code/time
http://ahoramededicoalcacharreo.blogspot.com.ar/2013/05/libreria-rtc.html
El que pregunta aprende, el que responde aprende a responder.

davisss

Gracias por la info, no conocia esos comandos.

Pero tengo el mismo problema, el modulo una vez que el arduino se desconecta no sigue contando. Y hay que volverlo a poner en hora. Ahora me da igual pero cuando no este conectado al PC. No es viable.

saludos.

La hora la guarda pero no avanza el tiempo no? me lía el titulo del tema  :smiley-roll-sweat:

Prueba con el ejemplo de esta web http://bildr.org/2011/03/ds1307-arduino/ pero no creo que te solucione tu problema. Yo cambiaría la pila por una "buena" (una alcalina) ya que algunas pilas de los "chinos" no son capaces de hacer oscilar el cristal de cuarzo y por lo tanto no avanza el tiempo.

Es raro que tengas dos medidas diferentes (2,58V y 3,59V) cuando estas midiendo lo mismo.  :smiley-slim:



davisss

El reloj funciona correctamente cuando esta conectado a la alimentación del arduino. Pero al desconectar el arduino el modulo no sigue funcionando, es decir que cuando se vuelve a conectar mantiene la hora anterior y no la que deberia tener si hubiera estado funcionando bien.

Yo creo que tiene poca tensión cuando esta en bateria y no funciona. He comprado baterias CR2032 de marca y el funcionamiento es el mismo.

gracias por tu interes!

maxid

revisa este hilo, hay un tutorial con una libreria nueva.
http://forum.arduino.cc/index.php?topic=152577.0
El que pregunta aprende, el que responde aprende a responder.

davisss

gracias pero nada.
He pedido otro, ya os contare si era error del modulo.


Muchas gracias por la ayuda.

Go Up