DS1307 che non tiene piu la memoria

ciao a tutti, facendo delle prove con un ds1307 devo aver combinato qualcosa perche non toccandolo sketch d'improvviso non tiene piu i dati in memoria.. la batteria è carica e ai pin ci arrivano 3.23v quindi questa non è... cos'altro può essere? l'orologio va normalmente ma appena si stacca la corrente il timer si resetta e parte da 00:00. La libreria che uso è la ds1307.h.

Grazie

....ci mancava solo questo...

posta il codice :slight_smile:

il codice è quello dell’esempio della libreria. La prima volta l’ho fatto partire così com’è per far settare un’ora diversa dal 00:00, poi l’ho modificato per far leggere solo il tempo, ma mi parte sempre da 00:00

#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,23);     //set the minutes
  RTC.set(DS1307_HR,19);       //set the hours
  RTC.set(DS1307_DOW,4);       //set the day of the week
  RTC.set(DS1307_DATE,5);       //set the date
  RTC.set(DS1307_MTH,3);        //set the month
  RTC.set(DS1307_YR,9);         //set the year
  */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.print("      ");                 // some space for a more happy life
  Serial.print(RTC.get(DS1307_DATE,false));//read date
  Serial.print("/");
  Serial.print(RTC.get(DS1307_MTH,false));//read month
  Serial.print("/");
  Serial.print(RTC.get(DS1307_YR,false)); //read year 
  Serial.println();

  delay(1000);

}

alexdb:
posta il codice :slight_smile:

però ha detto chiaramente di non averlo modificato, misura col tester se la tensione della batteria arriva sui pin del chip, non vorrei fosse un problema di contatti del portabatteria

Sui pin 3 e 4 la tensione è quella della batteria: 3.2v (sia da arduino acceso che da spento), sui pin 4 e 8 la tensione è 5v (da arduino acceso, zero da spento).

In origine lo sketch non era quello postato ma era di un altro lavoro che stavo facendo…poi all’improvviso (mentre ho spostato tutti gli oggetti dal tavolino, e credo non abbia fatto alcun contatto) è saltato tutto, ovvero non teneva più la memoria…le saldature sono tutte ok…

più che smartgatto dovresti chiamarti sfigatto :D, sei davvero sfortunato con questo progetto. MI spiace ma non so come aiutarti, però se con la tensione di alimentazione l'orologio riprende a funzionare forse c'è davvero un qualche casino sullo sketch.

Guarda no..non è sfiga..si chiama ignoranza :blush:
come già dissi una volta io mi occupo di altro (lavoro in una terapia intensiva) e ciò che faccio lo faccio solo per diletto..
il mio problema è che non avendo fatto una scuola ho imparato le cose che so un pò qui e un pò là..saltando qualche pezzo...tipo le basi :smiley:

ritornando al nostro ds1307, dopo aver mangiato, ho riprovato a ricollegare il tutto (avevo staccato tutto, compreso la batteria) e magicamente ha ripreso a funzionare da solo! quasi come se fosse andato in..boh..."protezione"? magari involontariamente gli ho fatto fare qualche corto a lui non gradito, e dopo un pò si è ripreso...per fortuna!!!!

Batteria scarica. Leggere la tensione di una batteria con un tester non è una prova valida a meno che non sia completamente scarica. Senza carico la batteria al litio che usi ti darà sempre il valore nominale o poco meno

hreplo:
Batteria scarica. Leggere la tensione di una batteria con un tester non è una prova valida a meno che non sia completamente scarica. Senza carico la batteria al litio che usi ti darà sempre il valore nominale o poco meno

Ma lui ha misurato la tensione sui pin del chip, in assenza di tensione di alimentazione, più carico di così...

hreplo:
Batteria scarica. Leggere la tensione di una batteria con un tester non è una prova valida a meno che non sia completamente scarica. Senza carico la batteria al litio che usi ti darà sempre il valore nominale o poco meno

Il consumo di un DS1307 dalla batteria é minore di 0,5µA. Percui non puoi parlare di carico o senza carico.
Ciao Uwe

@smartgatto:
Ma non devi lasciare nello sketch "RTC.start();"
Quel comando va dato solo dopo un corrispondente RTC.stop() e conseguente aggiornamento dei registri interni. Ma se l'orologio va, non c'è bisogno di start.

no quello è stato solo un errore di copia/incolla... nel mio sketch caricato non c'era....
cosa serve esattamente quel comando?

Ad avviare l'RTC