DS1307 - No guarda la hora

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

Edito, no son 2 relojes es una memoria y un reloj, controlá la alimentacion de la pila en el pin 4

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.

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.

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?

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

Na no te preocupes maxid.

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

la pila se ve que esta bien, tiene que ser algo del codigo. poste el codigo quizas encontremos algo

//---------------------- 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.

#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.

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

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 :cold_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. :relaxed:

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!

revisa este hilo, hay un tutorial con una libreria nueva.
http://forum.arduino.cc/index.php?topic=152577.0

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

Muchas gracias por la ayuda.

Buen dia Daviss..

Solo para preguntarte si solucionarias el problema con tu DS1307, ya que tengo el mismo problema .... Es el mismo modulo...y me pasa lo mismo, cuando se queda sin energia el oscilador interno del modulo se desactiva por lo tanto ya no se va actualizando la hora.. a lo poco que he leído ahí tres maneras de que trabaje el modulo cuando esta alimentado con la batería

DC ELECTRICAL CHARACTERISTICS
(VCC = 0V, VBAT = 3.0V; TA = 0°C to +70°C, TA = -40°C to +85°C.) (Notes 1, 2)

PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS

VBAT Current (OSC ON);
SQW/OUT OFF IBAT1 300 500 nA

VBAT Current (OSC ON);
SQW/OUT ON (32kHz) IBAT2 480 800 nA

VBAT Data-Retention Current
(Oscillator Off IBATDR 10 100 nA

WARNING: Negative undershoots below -0.3V while the part is in battery-backed mode may cause loss of data.

mi duda es, si esto se configura por hardware o software , si solucionaste el problema te agradeciria si me dijeras como lo hiciste, de antemano muchas gracias.

Saludos.

![](http://C:\Users\DvD\Desktop\Nueva carpeta\ds137)

Hola compañero mi a ver si este enlace te sirve a mí me funciono y tuve los mismos problemas .
.Módulo RTC DS1307 con Arduino - TuElectronica.es

Saludos

No consegui que funcionara.

Compre otro pero no lo he probado mañana lo pruebo y te cuento si con el nuevo funciona. O el error es debido a otra cosa.

un saludo.

Acabo de probar el nuevo modulo y el fallo es el mismo, cuando desconectas la alimentacion no sigue contando los segundos que pasan y se congela.

Pues el modulo parece estar bien, tiene que ser algo que se no escapa.

Os dejo aquí un post de mi Blog con una solución a este problema:

Tiny RTC y perdida de la hora