buonasera ragazzi,
ho una domanda sul modulo rtc DS1302.
ho iniziato collegando il mio modulo ad arduino, prendo la libreria apposita e faccio girare un esempio per settare l’rtc.
quando però vado a stampare a seriale mi stampa sempre la stessa ora (giorno e data gli stessi ovviamente, fin quando non cambia).
se stacco dall’alimentazione il modulo, questo si aggiorna, e se dopo un tot di secondi, maggiori o uguali a uno, rileggo l’rtc l’ora è cambita di quel tot di secondi (se stacco per 2 sec ho l’ora 2 sec più avanti).
sembra quasi che il clock dell’rtc stia fermo quando è alimentato da arduino e invece funzioni quando il modulo non viene alimentato da arduino.
a voi è mai successo?
metto lo sketch che ho usato per settare e successivamente stampando a video le date(fatto il primo sketch l’ho ripetuto commentando il settaggio nel setup).
#include <DS1302.h>
// Init the DS1302
DS1302 rtc(8, 7, 6);
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(2); // Set Day-of-Week to FRIDAY
rtc.setTime(15,45, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(3, 11, 2015);*/ // 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);
}
ho guardato in rete (ho provato con e senza resistenza da 220 ma è lo stesso) l’unica soluzione che ho trovato fino d’ora è quella di mettere il vcc dell’rtc su pin digitale e metterlo in high quando leggo l’rtc e poi, una volta letto, lo metto low.
ditemi voi come devo proseguire se posso “accontentarmi” di questo trucco o no.
grazie
buona serata a tutti