RTC DS1307: Problema!

Ciao a tutti, mi trovo con uno strano problema con un modulo RTC DS1307.
Ho seguito esattamente questo schema:

E caricato questo sketch:

/*Reads the value from a Real Time Clock (RTC) DS1307 and displays it in the serial monitor
 *
 *Created by D. Sjunnesson 1scale1.com d.sjunnesson (at) 1scale1.com
 *
 *Created with combined information from 
 *http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1180908809
 *http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057
 *
 *
 *Big credit to  mattt (please contact me for a more correct name...) from the Arduino forum 
 *which has written the main part of the library which I have modified
 *
 */

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

void setup()
{
  Serial.begin(9600);

  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,31);     //set the minutes
  RTC.set(DS1307_HR,17);       //set the hours
  RTC.start();

}

void loop()
{

  Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
  Serial.print(":");
  Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
  Serial.print(":");
  Serial.print(RTC.get(DS1307_SEC,false));//read seconds
  Serial.println();
  delay(500);

}

Il problema sta nel fatto che guardando nel monitor seriale, ogni tanto l'output da uscita tipo 0:0:0

17:39:5
17:39:5
17:39:6
17:39:6
17:39:7
17:39:7
17:39:8
17:39:8
17:39:9
17:39:9
17:39:10
17:39:10
17:39:11
17:39:11
17:39:12
17:39:12
17:39:13
17:39:13

[b]0:0:0[/b]

17:39:14
17:39:15
17:39:15
17:39:16
17:39:16
17:39:17
17:39:17
17:39:18
17:39:18
17:39:19
17:39:19
17:39:20
17:39:20

Da cosa può dipendere?
Ho controllato anche le saldature e sembrano vadano come si deve..

Qualcuno di voi ha avuto lo stesso problema?

Attendo risposte

Saluti

Nicola

ma lo usi contemporaneamente con batteria ed attaccato alla alimentazione ?
stavo pensando che:
se e' alimentato solo a batteria e la stessa si stacca, non dovrebbe poi riprendere dal giusto orario. quindi non puo' essere.
Pero' se invece e' alimentato contemporaneamente da alimentatore e batteria, e la batteria ha falsi contatti, puo' capitare, perche' questi chip vogliono la presenza della batteria sempre, anche se alimentati esternamente, e contemporaneamente l'alimentazione esterna non gli fa perdere l'orario.

Testato:
ma lo usi contemporaneamente con batteria ed attaccato alla alimentazione ?
stavo pensando che:
se e' alimentato solo a batteria e la stessa si stacca, non dovrebbe poi riprendere dal giusto orario. quindi non puo' essere.
Pero' se invece e' alimentato contemporaneamente da alimentatore e batteria, e la batteria ha falsi contatti, puo' capitare, perche' questi chip vogliono la presenza della batteria sempre, anche se alimentati esternamente, e contemporaneamente l'alimentazione esterna non gli fa perdere l'orario.

Si esattamente, viene alimentato sia dalla batteria al litio da 3v (che è carica) e poi arduino alimentato tramite usb(che in questo modo sono anche riuscito a vedere il problema tramite seriale).

Quindi dici che se la batteria da 3v ha dei falsi contatti può essere che dipenda da questo?

Grazie

io quando ho fatto prove con il ds1307 ho seguito questa guida e mi sono ricavato lo schema dai pcb che vedi

http://www.ladyada.net/learn/breakoutplus/ds1307rtc.html

uno schema a caso da google immagini

per la batteria non può dare problemi, la batteria da 3 volt interviene SOLO quando manca l'alimentazione al chip, se il chip è alimentato è come se non esistesse

Dubito che la batteria da questo genere di problemi comunque puoi toglierti il dubbio e toglierla durante i test; il pin dove va il positivo della batteria mettilo a massa. L'rtc senza batteria funziona ugualmente solo che quando togli l'alimentazione si resetta.

Comunque adesso hai messo le resistenze di pullup su SDA e SCL?
Hai qualcos'altro sul bus I2C?

io ricordo note ufficiali sul fatto dell'obbligatorieta' della presenza della batteria, non e' che non fuziona, io anche ho rpovato, pero' se cerchi info vedrai che molte volte sono venuti fuori problemi a questi ds usati senza batteria

Pelletta:
Comunque adesso hai messo le resistenze di pullup su SDA e SCL?

Quoto.

Ed inoltre attento perché quello schema potrebbe crearti dei casini. Se noti la batteria è collegata alla colonna "+" di sinistra della breadboard che poi va solo al pin 3 (Vbatt) del DS1307. Attento a non collegare questa linea con la colonna "+" di destra, che invece va ai 5V dell'Arduino.

Allora io ho messo le resistenze di pullup su SDA e SCL, non ho messo però il condensatore che in alcuni schemi si trova, tipo questo:

Oltre all'rtc ad arduino è collegato un sensore di temperatura, 2 potenziometri all'uscite analogiche, e 2 max7219 in cascata..

Potrebbero esserci interferenze con alcuni di questi componenti? O può dipendere dal condensatore che non ho messo?

Grazie