Come utilizzare i dati del RTC DS1302

Buongiorno a tutti, sto cercando di creare il mio primo progetto con Arduino, un word clock stile qlocktwo (l'ennesimo direte voi..).

Il mio problema al momento è come richiamare l'ora e minuti impostati nel DS1302 e associarli a due variabili dichiarate, in modo da far accendere i vari led.

Sono nuovo e vorrei imparare, ma mi sono bloccato a questo scoglio. C'è qualche anima pia?

Ciao e grazie

O usi una libreria oppure ti scrivi il codice per comunicare col RTC via I2C. Meglio la libreria....

Ti ringrazio per l'aiuto, ma il problema rimane perché non so come farlo ;) Ad esempio utilizzando la libreria DS1302 di Rinky-Dink Electronic (http://www.RinkyDinkElectronics.com/) come posso farlo?

Non riesco a scaricare la libreria per dare un'occhio... comunque dal manuale mi pare di capire che va accoppiata con la libreria Time.h e poi passi i dati col comando

t = RTC.getTime();

dove t é definito

Time t;

e contiene le variabili per le ore, minuti, secondi e la data.

Ma non ci sono esempi legati alla libreria?

Intanto grazie per l’aiuto…
Ti riferisci alla libreria Time o alla libreria DS1302? Con la DS1302 non sono riuscito a trovare un esempio che mi aiutasse,

Inserisco qui il mio sketch, sia per essere più chiaro sia per farmi aiutare da voi nel caso stessi scrivendo un sacco di cavolate…

/* WordClockFra v1.0
 * Data ultima modifica 09.01.2016
 * Autore: Francesco Ferrari
*/
#include <DS1302.h>      //Libreria RTC
#include <Time.h>

namespace {

// Init the DS1302
DS1302 rtc(5, 6, 7);    // Definisce i pin per RTC

int minuti = 0;
int ore = 0;

}  // namespace

#define SONO     24      //LED COLLEGATI AL PIN 24
#define LE       25      //LED COLLEGATI AL PIN 25
#define ORE      26      //LED COLLEGATI AL PIN 26
#define E        27      //LED COLLEGATI AL PIN 27
#define LUNA     28      //LED COLLEGATI AL PIN 28
#define DUE      29      //LED COLLEGATI AL PIN 29
#define TRE      30      //LED COLLEGATI AL PIN 30
#define OTTO     31      //LED COLLEGATI AL PIN 31
#define NOVE     32      //LED COLLEGATI AL PIN 32
#define DIECI    33      //LED COLLEGATI AL PIN 33
#define UNDICI   34      //LED COLLEGATI AL PIN 34
#define DODICI   35      //LED COLLEGATI AL PIN 35
#define SETTE    36      //LED COLLEGATI AL PIN 36
#define QUATTRO  37      //LED COLLEGATI AL PIN 37
#define SEI      38      //LED COLLEGATI AL PIN 38
#define CINQUE   39      //LED COLLEGATI AL PIN 39
#define MENO     40      //LED COLLEGATI AL PIN 40
#define ME       41      //LED COLLEGATI AL PIN 41
#define MUN      42      //LED COLLEGATI AL PIN 42
#define MQUARTO  43      //LED COLLEGATI AL PIN 43
#define MVENTI   44      //LED COLLEGATI AL PIN 44
#define MCINQUE  45      //LED COLLEGATI AL PIN 45
#define MDIECI   46      //LED COLLEGATI AL PIN 46
#define MEZZA    47      //LED COLLEGATI AL PIN 47
#define M1       48      //LED COLLEGATI AL PIN 48
#define M2       49      //LED COLLEGATI AL PIN 49
#define M3       50      //LED COLLEGATI AL PIN 50
#define M4       51      //LED COLLEGATI AL PIN 51

 
void setup() {
     
pinMode (SONO, OUTPUT);     //IMPOSTA IL PIN COME OUTPUT
pinMode (LE, OUTPUT);       //IMPOSTA IL PIN COME OUTPUT
pinMode (ORE, OUTPUT);      //IMPOSTA IL PIN COME OUTPUT
pinMode (E, OUTPUT);        //IMPOSTA IL PIN COME OUTPUT
pinMode (LUNA, OUTPUT);     //IMPOSTA IL PIN COME OUTPUT
pinMode (DUE, OUTPUT);      //IMPOSTA IL PIN COME OUTPUT
pinMode (TRE, OUTPUT);      //IMPOSTA IL PIN COME OUTPUT
pinMode (OTTO, OUTPUT);     //IMPOSTA IL PIN COME OUTPUT
pinMode (NOVE, OUTPUT);     //IMPOSTA IL PIN COME OUTPUT
pinMode (DIECI, OUTPUT);    //IMPOSTA IL PIN COME OUTPUT
pinMode (UNDICI, OUTPUT);   //IMPOSTA IL PIN COME OUTPUT
pinMode (DODICI, OUTPUT);   //IMPOSTA IL PIN COME OUTPUT
pinMode (SETTE, OUTPUT);    //IMPOSTA IL PIN COME OUTPUT
pinMode (QUATTRO, OUTPUT);  //IMPOSTA IL PIN COME OUTPUT
pinMode (CINQUE, OUTPUT);   //IMPOSTA IL PIN COME OUTPUT
pinMode (MENO, OUTPUT);     //IMPOSTA IL PIN COME OUTPUT
pinMode (ME, OUTPUT);       //IMPOSTA IL PIN COME OUTPUT
pinMode (MUN, OUTPUT);      //IMPOSTA IL PIN COME OUTPUT
pinMode (MQUARTO, OUTPUT);  //IMPOSTA IL PIN COME OUTPUT
pinMode (MVENTI, OUTPUT);   //IMPOSTA IL PIN COME OUTPUT
pinMode (MCINQUE, OUTPUT);  //IMPOSTA IL PIN COME OUTPUT
pinMode (MDIECI, OUTPUT);   //IMPOSTA IL PIN COME OUTPUT
pinMode (MEZZA, OUTPUT);    //IMPOSTA IL PIN COME OUTPUT
pinMode (M1, OUTPUT);       //IMPOSTA IL PIN COME OUTPUT
pinMode (M2, OUTPUT);       //IMPOSTA IL PIN COME OUTPUT
pinMode (M3, OUTPUT);       //IMPOSTA IL PIN COME OUTPUT
pinMode (M4, OUTPUT);       //IMPOSTA IL PIN COME OUTPUT

}

void loop() {
  

// partiamo da uno stato conosciuto
digitalWrite(SONO, LOW);     //IMPOSTA IL PIN COME OUTPUT
digitalWrite(LE, LOW);       //IMPOSTA IL PIN COME OUTPUT
digitalWrite(ORE, LOW);      //IMPOSTA IL PIN COME OUTPUT
digitalWrite(E, LOW);        //IMPOSTA IL PIN COME OUTPUT
digitalWrite(LUNA, LOW);     //IMPOSTA IL PIN COME OUTPUT
digitalWrite(DUE, LOW);      //IMPOSTA IL PIN COME OUTPUT
digitalWrite(TRE, LOW);      //IMPOSTA IL PIN COME OUTPUT
digitalWrite(OTTO, LOW);     //IMPOSTA IL PIN COME OUTPUT
digitalWrite(NOVE, LOW);     //IMPOSTA IL PIN COME OUTPUT
digitalWrite(DIECI, LOW);    //IMPOSTA IL PIN COME OUTPUT
digitalWrite(UNDICI, LOW);   //IMPOSTA IL PIN COME OUTPUT
digitalWrite(DODICI, LOW);   //IMPOSTA IL PIN COME OUTPUT
digitalWrite(SETTE, LOW);    //IMPOSTA IL PIN COME OUTPUT
digitalWrite(QUATTRO, LOW);  //IMPOSTA IL PIN COME OUTPUT
digitalWrite(CINQUE, LOW);   //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MENO, LOW);     //IMPOSTA IL PIN COME OUTPUT
digitalWrite(ME, LOW);       //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MUN, LOW);      //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MQUARTO, LOW);  //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MVENTI, LOW);   //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MCINQUE, LOW);  //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MDIECI, LOW);   //IMPOSTA IL PIN COME OUTPUT
digitalWrite(MEZZA, LOW);    //IMPOSTA IL PIN COME OUTPUT
digitalWrite(M1, LOW);       //IMPOSTA IL PIN COME OUTPUT
digitalWrite(M2, LOW);       //IMPOSTA IL PIN COME OUTPUT
digitalWrite(M3, LOW);       //IMPOSTA IL PIN COME OUTPUT
digitalWrite(M4, LOW);       //IMPOSTA IL PIN COME OUTPUT
  
  // Mostriamo le ore
  if ((ore>=0) && (ore<1)) { 
    digitalWrite(SONO, HIGH);
    digitalWrite(LE, HIGH);
    digitalWrite(ORE, HIGH);
    digitalWrite(DODICI, HIGH); 
    Serial.print("Sono le dodici");

 ...
 
    if ((ore>=23) && (ore<24)) { 
    digitalWrite(DIECI, LOW);
    digitalWrite(SONO, HIGH);
    digitalWrite(LE, HIGH);     
    digitalWrite(ORE, HIGH);
    digitalWrite(UNDICI, HIGH);
    Serial.print("Sono le undici");
  }  
  // Mostriamo in minuti
  if ((minuti>=5) && (minuti<10)) { 
    digitalWrite(ME, HIGH);
    digitalWrite(MCINQUE, HIGH); 
    Serial.print(" e cinque minuti ");

  ...

  if (minuti>54) { 
    digitalWrite(MDIECI, LOW); 
    digitalWrite(MENO, HIGH);
    digitalWrite(MCINQUE, HIGH); 
    Serial.print(" meno cinque");
  }  

}

Nessun altro che voglia provare ad aiutarmi?