Go Down

Topic: hard time to use a DS1302 (Read 3228 times) previous topic - next topic

erwanl

Jan 12, 2013, 08:31 pm Last Edit: Jan 12, 2013, 08:39 pm by erwanl Reason: 1
Hi There,

I bought a DS1302 (see here : http://dx.com/p/ds1302-real-time-clock-module-with-battery-cr2032-126453 ).
I use this piece of code : http://playground.arduino.cc/Main/DS1302 (or also a library from here : https://github.com/msparks/arduino-ds1302/blob/master/DS1302.h).

However, I am getting wierd result.
The time I see is not one the one I read afterwards.
When setting time for exemple, it affects the date...

Here below my sketch.

Anyone has ideas?

I get this as output : "08:17:09 21.09.2001 Sun" whereas my code sets :   rtc.setDOW(SATURDAY);   rtc.setTime(16, 1, 3);    rtc.setDate(7, 9, 13);  

Thanks,
Erwan

Code: [Select]

// DS1302_LCD (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A quick demo of how to use my DS1302-library to make a quick
// clock using a DS1302 and a 16x2 LCD.
//
// I assume you know how to connect the DS1302 and LCD.
// DS1302:  CE pin    -> Arduino Digital 12
//          I/O pin   -> Arduino Digital 11
//          SCLK pin  -> Arduino Digital 10
// LCD:     DB7       -> Arduino Digital 7
//          DB6       -> Arduino Digital 6
//          DB5       -> Arduino Digital 5
//          DB4       -> Arduino Digital 4
//          E         -> Arduino Digital 8
//          RS        -> Arduino Digital 9

#include <LiquidCrystal.h>
#include <DS1302.h>

// Init the DS1302
//DS1302(ce, data, clock);
DS1302 rtc(12,11,10);

// Init the LCD
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );

void set_time() {
 rtc.setDOW(SATURDAY);    //
 rtc.setTime(16, 1, 3);     //
 rtc.setDate(7, 9, 13);   //
}

void setup()
{
 // Set the clock to run-mode, and disable the write protection
 rtc.halt(false);
 rtc.writeProtect(false);
 //rtc.setTCR(TCR_OFF);
 // Setup LCD to 16x2 characters
 lcd.begin(16, 2);
 
set_time();

 // The following lines can be commented out to use the values already stored in the DS1302

}

void loop()
{
 // Display time centered on the upper line
 lcd.setCursor(4, 0);
 lcd.print(rtc.getTimeStr());
 
 // Display abbreviated Day-of-Week in the lower left corner
 lcd.setCursor(0, 1);
 lcd.print(rtc.getDOWStr(FORMAT_SHORT));
 
 // Display date in the lower right corner
 lcd.setCursor(6, 1);
 lcd.print(rtc.getDateStr());

 // Wait one second before repeating :)
 delay (1000);
}

erwanl

fixed it...
seems I need to unplug VCC (the module then works on battery) when setting the time.

dont understand why. found it by luck :)

anyway, now works !

/erwan

leo72

@erwanl:
this is the italian sub-section of the forum  ;)
We (mostly) understand english but it's not the default language to use here  ;)

erwanl

Oops sorry :)
Can this topic be moved to the right place?

I'll pay more attention next time,

Grazie mille !

leo72


Oops sorry :)
Can this topic be moved to the right place?

Hope a mod will do the job  ;)

Quote

I'll pay more attention next time,

Grazie mille !

Ciao  :D

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy