Hello,
I have a project using this library.
My test code is
// DS3231_Serial_Easy
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// A quick demo of how to use my DS3231-library to
// quickly send time and date information over a serial link
//
// To use the hardware I2C (TWI) interface of the Arduino you must connect
// the pins as follows:
//
// Arduino Uno/2009:
// ----------------------
// DS3231: SDA pin -> Arduino Analog 4 or the dedicated SDA pin
// SCL pin -> Arduino Analog 5 or the dedicated SCL pin
//
// Arduino Leonardo:
// ----------------------
// DS3231: SDA pin -> Arduino Digital 2 or the dedicated SDA pin
// SCL pin -> Arduino Digital 3 or the dedicated SCL pin
//
// Arduino Mega:
// ----------------------
// DS3231: SDA pin -> Arduino Digital 20 (SDA) or the dedicated SDA pin
// SCL pin -> Arduino Digital 21 (SCL) or the dedicated SCL pin
//
// Arduino Due:
// ----------------------
// DS3231: SDA pin -> Arduino Digital 20 (SDA) or the dedicated SDA1 (Digital 70) pin
// SCL pin -> Arduino Digital 21 (SCL) or the dedicated SCL1 (Digital 71) pin
//
// The internal pull-up resistors will be activated when using the
// hardware I2C interfaces.
//
// You can connect the DS3231 to any available pin but if you use any
// other than what is described above the library will fall back to
// a software-based, TWI-like protocol which will require exclusive access
// to the pins used, and you will also have to use appropriate, external
// pull-up resistors on the data and clock signals.
//
#include <DS3231.h>
// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);
void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
// Initialize the rtc object
rtc.begin();
// The following lines can be uncommented to set the date and time
rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(17, 10, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(22, 11, 2018); // Set the date to January 1st, 2014
}
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);
}
with all comments removed for readability:
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
void setup()
{
Serial.begin(115200);
rtc.begin();
// The following lines can be uncommented to set the date and time
rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(17, 10, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(22, 11, 2018); // Set the date to January 1st, 2014
}
void loop()
{
Serial.print(rtc.getDOWStr());
Serial.print(" ");
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
Serial.println(rtc.getTimeStr());
delay (1000);
}
SCL-SCL
SCA-SCA
GND-GND
VCC-5V
are the connections.
So I used an arduino to set the time and date and then hooked the RTC module up to my project (standalone atmega chip). I later realized that the event I set for a certain time didn't occur. So I hooked the module up to my arduino again and saw that the time was wrong. So I corrected it and put everything back together, to no avail. Checked Vbat = 2.24V, low but not completely empty I think. It's a CR1220.
I then disconnected the RTC module from my arduino (where I set the time to say 17:30), set the time to 17:10 (with no RTC module connected). When I put the RTC back, time was 17:10. Everytime I reset the arduino the time was the one I set. The module didn't seem to keep counting the time, but strangely enough it also didn't really reset.
I then connected a 2nd RTC module, fresh out of the box and the arduino reported the correct date and the last time I set with no module connected.
So it seems I never really programmed the RTC module, I just set a time for the arduino and from there it started counting when I connected it.
I tried the RTClib library and that one seems to work. I will incoorporate that into my project later and see.
Basically my question is: Did I miss something? Is there a misconception on my side somewhere? Or maybe the lib is just not working..
best regards!