아두이노

본문 바로가기
사이트 내 전체검색


아두이노
아두이노

1. DS1302 RTC 모듈 실습

페이지 정보

작성자 관리자 댓글 0건 조회 2,222회 작성일 18-11-21 11:27

본문

1. DS1302 RTC 모듈 실습

 

DS1302 RTC 모듈을 이용해 요일/날짜/시간을 사용해보자.



(1) 회로도 구성


그림입니다.
원본 그림의 이름: CLP0000427c0001.bmp
원본 그림의 크기: 가로 288pixel, 세로 512pixel


그림입니다.
원본 그림의 이름: CLP0000427c0002.bmp
원본 그림의 크기: 가로 560pixel, 세로 490pixel


DS1302 RTC 모듈은 VCC에 5V 전원을, GND에 아두이노 보드의 GND에, CLK를 아두이노 4핀, DAT을 아두이노 3핀, RST를 아두이노 2핀에 연결한다.



(2) RTC 모듈 라이브러리 설치


http://www.rinkydinkelectronics.com/library.php?id=5


그림입니다.
원본 그림의 이름: CLP0000427c0003.bmp
원본 그림의 크기: 가로 678pixel, 세로 154pixel

그림입니다.
원본 그림의 이름: CLP0000427c0004.bmp
원본 그림의 크기: 가로 730pixel, 세로 530pixel


압축을 풀어서 아두이노 라이브러리 폴더에 복사합니다.


그림입니다.
원본 그림의 이름: CLP0000427c0005.bmp
원본 그림의 크기: 가로 683pixel, 세로 336pixel


아두이노 스케치를 다시 시작합니다.


그림입니다.
원본 그림의 이름: CLP0000427c0007.bmp
원본 그림의 크기: 가로 585pixel, 세로 890pixel

아래 부분에 DS1302가 추가되었다.


(3) 소스코딩


#include <DS1302.h> // DS1302 RTC 라이브러리


DS1302 rtc(2,3,4); // RTC 객체(RST_PIN, IO_PIN, SCK_PIN)


void setup(){


  //시간을 run-mode로 설정

  rtc.halt(false);


  // 쓰는 것을 방지하는 비활성화 역할

  rtc.writeProtect(false);


  Serial.begin(9600);

/* Set the time and date */

  //처음 실행시 한번만 설정

  rtc.setDOW(WEDNESDAY); // 요일 설정

  rtc.setTime(11, 30, 0); // 시간설정, 순서대로 (시,분,초)

  rtc.setDate(21,11,2018); // 날짜 설정, 순서대로 (일, 월, 년)

  

}

void loop(){


  Serial.print(rtc.getDOWStr()); // 요일을 시리얼 모니터에 출력

  Serial.print(rtc.getDateStr()); // 날짜를 시리얼 모니터에 출력

  Serial.print(" -- ");

  Serial.println(rtc.getTimeStr()); // 시간를 시리얼 모니터에 출력

  delay(1000); // 1초 딜레이

 

}


Set the time and date 부분의 시간은 자신의 현재시간으로 수정해 주어야 한다.

Set the time and date 부분은 한 번 업로드 후 주석 처리 후 재업로드 해야한다.

요일/날짜/시간 설정 코드에는 현재 시각을 정확히 넣으면 되고, 넣은 코드는 RTC 모듈에 저장이 되므로 아두이노에 전원 공급이 않되어도 시간이 초기화 되지 않는다.

시간설정 후, 아래와 같이 수정후 다시 업로드 한다.


//시간을 run-mode로 설정
rtc.halt(true);
/* And disable write protection */
// 쓰는 것을 방지하는 비활성화 역할
rtc.writeProtect(true);

/* Set the time and date

  //처음 실행시 한번만 설정

  rtc.setDOW(WEDNESDAY); // 요일 설정

  rtc.setTime(11, 30, 0); // 시간설정, 순서대로 (시,분,초)

  rtc.setDate(21,11,2018); // 날짜 설정, 순서대로 (일, 월, 년)

  */


(4) 실행 결과


실행 후, 시리얼 모니터를 통해 결과를 확인한다.


그림입니다.
원본 그림의 이름: CLP000044a44009.bmp
원본 그림의 크기: 가로 616pixel, 세로 275pixel

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.