Aiuto per modulo RTC.

Salve a tutti,
come dicevo nella presentazione non sono un esperto del mondo arduino e ho iniziato solo da qualche giorno.
Stavo provando il modulo rtc con integrato DS1302.

Per settare l'ora ho usato un file di esempio compresa nella libreria che è questo :

// DS1302_Serial_Easy (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A quick demo of how to use my DS1302-library to 
// quickly send time and date information over a serial link
//
// I assume you know how to connect the DS1302.
// DS1302:  CE pin    -> Arduino Digital 2
//          I/O pin   -> Arduino Digital 3
//          SCLK pin  -> Arduino Digital 4

#include <DS1302.h>

// Init the DS1302
DS1302 rtc(2, 3, 4);

void setup()
{
  // Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  rtc.writeProtect(false);
  
  // Setup Serial connection
  Serial.begin(9600);

  // The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(6, 8, 2010);   // Set the date to August 6th, 2010
}

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating :)
  delay (1000);
}

Però ho notato un problema:
con alimentazione RTC collegata sfarfalla come nell'immagine che ho postato, se stacco l'alimentazione esterna e lascio la batteria tutto normale.
Ora il dubbio è: errore di programmazione della libreria o modulo RTC non funzionante?

Grazie a tutti.

@Lacus, il codice deve essere racchiuso nei tag code, vedi sezione 7 del regolamento, spiega bene come fare. Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Grazie! ora ho corretto :slight_smile:

Per "sfarfallio" probabilmente ti riferisci al fatto che i secondi non vanno di unità in unità.

E' del tutto normale poiché hai un aggiornamento del Serial Monitor di 1 secondo: porta il delay finale a 500 ms e vedrai che risolvi il problema.

ciao, purtroppo no.
ho provato ma nulla. per farfallio intendevo i valori strani che mimostra tra un secondo e l'altro come nell'imagine allegata :slight_smile:

Nel tuo listato non vi è traccia di qualche Serial.print che giustifichi quelle linee anomale.

Credo che la libreria sia "sporcata" da qualche Serial.print usato per debug.

Prova a scaricarla nuovamente sostituendo quella attuale.

Già fatto :frowning: ma la cosa strana è che lo fa solo quando è alimentato da Arduino. Se è alimentato solo dalla batteria va che una bellezza.

Se ci fate caso quelle righe replicano l'orario con l'aggiunta dell'1. Esempio
112:47:09 -> 12:47:09

e 00.00.2000 pare la data di inizializzazione dell'RTC.

Segui il consiglio di cyberhs, controlla il sorgente della lib. E controlla anche i collegamenti, anzi se metti lo schema è meglio.