Setting Time and Date for the DS3231 RTC

From media_wiki
Jump to: navigation, search
DS3231.PNG

Setting up the DS3231 RTC

 DS3231 RTC Datasheet: https://datasheets.maximintegrated.com/en/ds/DS3231.pdf
 Insert a coin cell battery into DS3231. 
 Either a CR2032 or LI2032 coin cell battery will work.
 Insert DS3231 module into the Power Logger PCB at J5. 

To Set the date and time use the follow program and paste in the Arduino IDE.
Ensure sure you have added these two libraries: Wire.h and ds3231.h to the Arduino environment using the library manager.

 //This code can be found here:https://github.com/rodan/ds3231
 #include <Wire.h>    //Make sure you have added this library to the Arduino environment
 #include <ds3231.h>  //Make sure you have added this library to the Arduino environment
 struct ts t; 
 void setup() {
 Serial.begin(9600);
 Wire.begin();
 DS3231_init(DS3231_CONTROL_INTCN);
 /*----------------------------------------------------------------------------
 In order to synchronize your clock module, insert timetable values below !
 ----------------------------------------------------------------------------*/
 t.hour=20;      //Set the hour in military time to your current time. 
 t.min=40;       //Set the minutes. 
 t.sec=0;        //No need to change   
 t.mday=11;      //Set the Day
 t.mon=4;        //Set the Month
 t.year=2021;    //Set the Year
 DS3231_set(t);  //Comment this line out after setting RTC with time & date to validate
 }

 void loop() {
 DS3231_get(&t);
 Serial.print("Date : ");
 Serial.print(t.mon);
 Serial.print("/");
 Serial.print(t.mday);
 Serial.print("/");
 Serial.print(t.year);
 Serial.print("\t Hour : ");
 Serial.print(t.hour);
 Serial.print(":");
 Serial.println(t.min);
 Serial.print(":");
 Serial.println(t.sec);
 delay(60000);
 }
 void print2digits(int number){
 if (number >= 0 && number < 10) {
   Serial.write ('0');
 }
 Serial.print(number);
 } 

Set up Programmer

 Connect the USBTinyISP to the AVR-ISP-6 pin header J7 on the Power Fail Logger PCB.
 In the Arduino IDE click on Tools Tab - Select Programmer then select USBTinyISP.
Connect the Prolific USB-to-Serial Comm Port to the RS232 Port on the Power Fail Board Use Device Manager to validate which Comm Port is used. In the Arduino IDE click on Tools Tab - Select Port then select the Prolific Port (Example Comm6).
Select correct target board In the Arduino IDE click on Tools Tab - Select Board then select the Arduino Uno.

Flash the Microcontroller with DS3231-Set-Time-Date Program

 Paste the above program DS3231-Set-Time-Date.ino into the Arduino IDE.
 After changing the time stamp in the program to match your current time do the following:
 In the Arduino IDE click on Sketch Tab - Select Upload Using Programmer
 After program has uploaded go back and comment out the DS3231_set(t); statement.

Validate the clock is set

 Validate the time and date are set by reprograming the board with that line commented out.
 Use the same programming steps as stated above. 
In the Arduino IDE click on Tools Tab - Select Serial Monitor
Once the program has finish loading hit the Reset button on the Power Fail Logger Board. You should see the correct time and date display in the Serial Monitor.


Power Fail Logger by Microrusty