Problemi con libreria DS1307

Ciao,ho comprato un modulo Tinyrtc versione 1.1 e volevo testare un programma che mi ero scaricato dal web,però ho un problema.
La libreria che utilizza il programma per la gestione dell'ora / data è diversa dalla mia ( la mia è la DS1307.h ) ,quando compilo il codice mi vengono segnalati degli errori ( ...in fondo al codice gli ho allegati ),volevo sapere se qualcuno mi poteva indicare le modifiche da apportare per testare il codice in maniera corretta.
Grazie 1000,Mauro

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
 
#include <Wire.h>
#include "RTClib.h"
#include <SD.h>
#include <dht11.h>
#include "DS1307.h"



#define CS 10
#define DHT11_PIN 4
 
DS1307 RTC;
dht11 DHT;
char buffer[50];
 
File myFile;
 
void setup () {
    Serial.begin(57600);
    Serial.print("Initializing SD card...");
    pinMode(CS, OUTPUT);
 
    if (!SD.begin(CS)) {
      Serial.println("initialization failed!");
      return;
    }
    Serial.println("initialization done.");
 
    Wire.begin();
    RTC.begin();
    RTC.sqw(1);     
    if (! RTC.isrunning()) {
      Serial.println("RTC is NOT running!");
      RTC.adjust(DateTime(__DATE__, __TIME__));
    }
}
 
void loop () {
    DateTime now = RTC.now();
 
    // -----------------------------------------------------------------------
      int chk;
      chk = DHT.read(DHT11_PIN);    // READ DATA
      int data = 0;                 // RETUTRNCODE
      switch (chk){
        case DHTLIB_OK:  
                    data = 0;                
                    break;
        case DHTLIB_ERROR_CHECKSUM: 
                    data = 997;     // CHECK SUM ERROR
                    break;
        case DHTLIB_ERROR_TIMEOUT: 
                    data = 998;     // TIMEOUT ERROR 
                    break;
        default: 
                    data = 999;     // UNKNOWN ERROR
                    break;
      }
 
    // -----------------------------------------------------------------------
 
    sprintf(buffer,  "%02d/%02d/%d %02d:%02d:%02d %d %d", now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second(), DHT.humidity, DHT.temperature, data );
    Serial.println( buffer );
 
    myFile = SD.open("dati.log", FILE_WRITE);
    if (myFile) {
      myFile.println(buffer);
      myFile.close();
    } else {
      Serial.println("error opening data.log");
    }
 
    delay(600000);
}

/*-----> errori che mi segnala il compilatore 

Creating C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp.o...
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp: In function 'void setup()':
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp:35: error: 'class DS1307' has no member named 'begin'
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp:36: error: 'class DS1307' has no member named 'sqw'
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp:37: error: 'class DS1307' has no member named 'isrunning'
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp:40: error: 'class DS1307' has no member named 'adjust'
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp: In function 'void loop()':
C:\Documents and Settings\mauro\Documenti\Arduino_Build\test14\test14.ino.cpp:45: error: 'class DS1307' has no member named 'now'
[Stino - Error 1]

Ogni lib ha i suoi metodi, se cambi libreria poi ci sta che i metodi della prima non siano gli stessi della seconda.
Controlla la lib che stai usando ed adatta il codice oppure riscrivilo che magari fai anche prima

Ciao ,ma non riesci a darmi 2 dritte ( magari modificandomi 1 riga del codice dove viene riscontrato 1 errore ),se possibile.
Le istruzioni che devo cambiare nel codice le devo andare a "ripescarle" nel file.h ,giusto ?
Grazie,Mauro

Per darti 2 dritte dovrei studiarmi la 1a lib, lo sketch e la 2a lib :wink:
Ma la libreria che stai usando non ha uno sketch di esempio? Di solito lo allegano.

Scusa,ma non ho capito una cosa,ma io non posso usare la libreria che utilizza il codice che ho scaricato ( RTClib.h ) invece di quella che mi viene allegata nel link dove ho acquistato il modulo tinyrtc v1.1 ( DS1307.h).
Il chip che esegue time/date della maxim non può utilizzare qualsiasi libreria oppure quello su mio modulo deve usare solo la DS1307.h??
Grazie

In linea massima sí; Tutte le librerie DS1307 per arduino dovrebbero lavorare con tutti i moduli DS1307, ma visto che non dai abbastanza informazioni ( Che tipo di Arduino usi, i link alle librerie e al modulo) non so risponderti con certezza.

Devi usare il sketch di esempio che viene allegato allla libreria.
Faccio un esempio inventandomi i nomi
Una funzione per leggere l' ora di una libreria si potrebbe chaimare gethour(9 mentre nell altra si potrebbe chaimare hourrtc(). Come puoi allora usare un esempio di una libreria con l' altra libreria?

Ciao Uwe

Ciao,io utilizzo una scheda arduino uno revisione 3,e inoltre allego il link del modulo ds1307 dove l'ho acquistato :

Grazie

uwefed:
Una funzione per leggere l' ora di una libreria si potrebbe chaimare gethour(9 mentre nell altra si potrebbe chaimare hourrtc(). Come puoi allora usare un esempio di una libreria con l' altra libreria?

Appunto.

mauroplus:
Ciao,io utilizzo una scheda arduino uno revisione 3,e inoltre allego il link del modulo ds1307 dove l'ho acquistato :
robot-domestici.it

Grazie

Vedo un link per una lib con 3 codici di esempio ed un link ad una pagina wiki che ti spiega come usare il modulo:
http://www.dfrobot.com/wiki/index.php/Real_Time_Clock_Module_(DS1307)_V1.1_(SKU:DFR0151)

Grazie,per la consulenza,ma volevo fare l'ultima domanda: con questo modulo io posso usare un'altra libreria ( es.RTClib.h ) oppure solo quella che mi viene segnalata sul link??
Ciao,Mauro

Puoi usare qualsiasi altra lib che supporti il DS1307.

OK,grazie della risposta ( adesso mi è tutto + chiaro ),scusa per le molteplici domande,ma ho la testa "dura".
Ciao,Mauro