DS1302는 시간을 저장하고있는 모듈입니다. 예를들어 아두이노를 시계로 사용하고있는데, 전원이 나가면 시간이 초기화 됩니다. 그러나 DS1302를 연결하면(건전지 사용) 아두이노의 전원이 나가도 시간이 저장됩니다.
전 DS1302모듈을 가지고 실제 회로대로 만능기판에 납땜을 해서 사용했는데, 미리 조립된 DS1302를 사용해도 상관 없습니다. 아두이노 우노에 전원으로 사용할수있는게 5V, 3.3V가 있는데 5V로 해야합니다. 아두이노에는 DS1302헤더파일이 있는데 이걸 사용하면 매우 쉽습니다. 위의 파일을 다운받고 아래의 그림처럼 들어가서 라이브러리를 추가해줍니다
코드에서 보면 setup부분에 setDOW,setTime,setDate함수로 날짜를 업데이트 합니다. 이 날짜는 DS1302에 저장이되므로 날짜를 넣은 이후에 날짜를 새로 갱신하지않기위해서는 코드를 지워야합니다.
만약 위의 방식과 다르게 지우는방식이 싫다면, 위와같은 코드를 넣으면 처음 한번만 날짜값을 업데이트합니다. 왜냐하면 처음 DS1302를 연결해서 rtc.getDataStr()함수를 호출하면 01.01.2000가 읽힙니다. 그래서 01.01.2000이 맞다면 날짜값을 업데이트 가능하게 해주고(rtc.writeProtect(true)) 그렇지 않다면 날짜값 업데이트를 막습니다.(rtc.writeProtect(false)) 이 방식의 단점은 처음 날짜값을 업데이트하고나서 새로 날짜를 업데이트하려면 rtc.getDataStr()값을 01.01.2000으로 만들어야 한다는 점입니다. 값을 01.01.2000으로 만드는 방법은 DS1302에 연결해있는 배터리를 뺐다끼면 됩니다 실습은 개인 학습을 위해 "주) 엘케이 임베디드" 사이트에서 구매한 아두이노 코딩 배우기 고급 키트를 이용한 학습입니다. 동봉된 책을 기반으로 학습하면서 개인적인 궁금증과 추가 필요한 부분을 정리한 블로그임을 미리 알려드립니다.
< 준비물 > 아두이노 우노 : 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 모듈로써 동작하기 위해서는 1초 라는 시간을 count 할 수 있어야 한다. 이를 위해 대표적으로 사용되는 클럭 주파수 값은
따라서, 최종적으로는 약 7.2 DS1307 제어하기7.2.1 준비 과정다음으로 DS1307 RTC DataSheet 링크: https://datasheets.maximintegrated.com/en/ds/DS1307.pdf RTC 예제를 검색해보면 아두이노 보드를 가지고
아무튼 여차저차해서 NOTICE: 7.2.2 DS1307 주요 레지스터
처음 구동 시, RTC 모듈을 연결해서 위 그림의 레지스터 주소 값들을 읽어 보면 아래 그림처럼 고정된 값만 계속 읽히는 것을 확인할 수 있을 것이다. 해당 내용 관련해서는 데이터 시트에 명시되어 있는데, “0번 주소” 의 따라서, 처음 RTC 구동 후 “0 ~ 6번 주소” 의 레지스터에 현재 시간 정보를 입력해주어야하고, 이 과정에서 0번 레지스터의 BIT7 값도 ‘ 다음의 그림은 RTC 레지스터에 현재 시간 정보를 입력한 이후 1분 간격으로 시간 정보를 읽은 결과를 보여준다. 그림에서 빨간색으로 표시한 영역이 분 (minute) 영역의 데이터에 해당하며, 정상적으로 RTC 모듈이 활성화 된 것을 확인할 수 있다. 7.3 DS1307 소비 전류
|