본문 바로가기
Arduino/Arduinio기초 실습

15장. RTC 시계 모듈 실습

by sinki 2022. 4. 11.

실습은 개인 학습을 위해 "주) 엘케이 임베디드" 사이트에서 구매한 아두이노 코딩 배우기 고급 키트를 이용한 학습입니다. 동봉된 책을 기반으로 학습하면서 개인적인 궁금증과 추가 필요한 부분을 정리한 블로그임을 미리 알려드립니다.

 

< 준비물 >

아두이노 우노 : 1개

USB 케이블  : 1개 

점퍼 케이블(숫암) : 4개

RTC 시계모듈 : 1개

 

시계 모듈인 RTC 모듈의 간단한 사용법 실습입니다. 가장 기초적인 사용법을 익혀 뒤에 다른 모듈과의 조합으로 많은 작품을 만들어 보세요....

< 참고 지식 >

⦿ RTC 시계 모듈(DS1302)

RTC 시계모듈에는 DS1302, DS3231, PCF8563 등 여러 가지 종류가 있습니다. 그중 오늘 사용할 모듈은 가장 저렴한 DS1302를 사용할 예정입니다. 

 우선 RTC는 실시간 시계라는 의미로 Real Time Clock의 약자입니다. 전원 공급이 없어도 시간 정보를 유지해야 하기 때문에 보통의 경우 동전 배터리(CR2032)를 장착하고 사용합니다. RTC 모듈과 아두이노의 연결 시에는 Vcc와 GND핀이 반대가 되지 않도록 주의가 필요합니다. 또한 배터리가 모두 방전이 되면 시간 정보를 기억하지 못합니다. 이때에는 배터리를 교체해 주세요.....

 

< 라이브러리 >

RTC 시계모듈을 사용하기 위해서는 필요한 라이브러리를 설치해야 합니다. 라이브러리 관리에서도 추가할 수 있지만 .zip 라이브러리 추가하는 방법으로도 가능합니다. 우선 아래 파일을 다운로드합니다.

RTC.zip
0.25MB

아두이노 스케치를 실행하고 '스케치 => 라이브러리 포함하기 => .ZIP 라이브러리 추가....'를 실행합니다.

저장된 위치 폴더 선택 => 파일 선택 => 선택 클릭으로 실행

스케치에서 라이브러리 포함하기에서 "Contributed 라이브러리" 항목에서 새로 추가된 라이브러리를 확인할 수 있습니다 

 

< 실습 코드 >

#include <virtuabotixRTC.h>

virtuabotixRTC myRTC(6, 7, 5); // digital 6번:CLK, 7번:DAT, 8번:RST

void setup()

{

Serial.begin(9600); // 통신속도 설정

myRTC.setDS1302Time(00, 59, 23, 2, 4, 11, 2022); // 초, 분, 시, 요일, 일, 월, 년

}

void loop()

{

myRTC.updateTime();

int i = myRTC.dayofweek;

Serial.print("Current Date / Time: ");

Serial.print(myRTC.dayofmonth);  //일

Serial.print("/");

Serial.print(myRTC.month);          //월

 

Serial.print("/");

Serial.print(myRTC.year);            //년

 

Serial.print(" ");

switch (i) // 요일

{

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(myRTC.hours); //시

Serial.print(":");

Serial.print(myRTC.minutes); //분

Serial.print(":");

Serial.print(myRTC.seconds); //초

delay(1000); // 1초 지연

}