1. DS1302 LIb
2. 소스코드
#include <virtuabotixRTC.h>
enum _RTC_
{
CLK = 14, //A0
DATA = 15, //A1
RST = 16 // A2
}rtc_1302;
virtuabotixRTC RTC(CLK, DATA, RST);
void setup() {
// put your setup code here, to run once:
pinMode(RST, OUTPUT);
digitalWrite(RST, 0);
delay(20);
digitalWrite(RST, 1);
Serial.begin(115200);
// timer Set = 최초 함번만하고 설정한 후 주석 처리후 다시 라이트 할 것
// 시간 설정시에만 적용하시고 시간 설정 후에는 반드시 주석 처리 후 빌드하여 재 라이트 합니다.
// 그렇지 않느면 계속 지속적으로 시간이 reset 또는 전원 인가시마다 시간이 다시 설정됩니다.
// 요일설정 : 1: 일, 2: 월, 3: 화, 4: 수, 5: 목, 6: 금, 7: 토
// 시간 설정순서 : 초, 분, 시, 요일, 일, 월, 년 순서로 설정하면 됩니다.
// RTC.setDS1302Time(00, 29, 16, 6, 3, 1, 2025);
}
void loop() {
// put your main code here, to run repeatedly:
RTC.updateTime(); // 시간 업데이트
Serial.print("Now Time : ");
Serial.print(RTC.year); //년
Serial.print("-");
Serial.print(RTC.month); // 월
Serial.print("-");
Serial.print(RTC.dayofmonth); //일
Serial.print("-");
//요일정보, 1-일, 2-월, 3-화, 4-수, 5-목, 6-금, 7-토
switch(RTC.dayofweek) // 요일정보얻기
{
case 1: Serial.print("Sun = 일요일"); break;
case 2: Serial.print("Mon = 월요일"); break;
case 3: Serial.print("TUE = 화요일"); break;
case 4: Serial.print("WED = 수요일"); break;
case 5: Serial.print("THU = 목요일"); break;
case 6: Serial.print("FRI = 금요일"); break;
case 7: Serial.print("SAT = 토요일"); break;
}
Serial.print("-");
Serial.print(RTC.hours); // 시간
Serial.print("-");
Serial.print(RTC.minutes); //분
Serial.print("-");
Serial.print(RTC.seconds); //초
Serial.println("입니다.");
delay(1000);
}