본문 바로가기
아두이노 러닝보드/아두이노 러닝보드 하드웨어설계

DS1307 RTC 연결하기: 실시간 시계 구현하기 ⏰

by 모빌리티키즈 2024. 12. 13.
728x90
반응형

안녕하세요, 여러분! 이번 포스트에서는 DS1307 리얼타임 클록(RTC)를 사용하여 Arduino 프로젝트에서 실시간 시계를 구현하는 방법을 설명합니다. 실시간 시계는 컴퓨터, 전자 시계, 데이터 로거 등 여러 전자 장치에서 시간을 기록하고 표시하는 데 널리 사용됩니다.

실시간 시계의 장점

실시간 시계는 전원 공급이 없을 때도 시간을 유지할 수 있는 장점이 있습니다. 이는 내부에 작은 파워 셀(약 3-5V)이 있어 수년 동안 최소한의 전력으로 작동하기 때문입니다. 이러한 기능 덕분에 전원이 차단된 상황에서도 정확한 시간을 기록할 수 있습니다.

DS1307 리얼타임 클록 (RTC)

DS1307은 초, 분, 시, 일, 월을 측정하는 실시간 클록 IC입니다. Arduino는 I2C 통신 프로토콜을 사용하여 DS1307에서 시간과 날짜 값을 읽습니다. 이 IC는 정전 시에도 시간을 기록하는 기능을 제공합니다.

DS1307의 핀 구성

DS1307 IC는 다음과 같은 핀 구성을 가지고 있습니다:

  1. X1, X2: 수정 발진기 핀 (32.768kHz 발진기 사용)
  2. VBAT: 백업 배터리 핀 (3-5V)
  3. GND: 접지 핀
  4. SDA: 직렬 데이터 핀 (I2C 통신)
  5. SCL: 직렬 클록 핀 (I2C 통신)
  6. SQW/OUT: 구형파 출력 핀 (1Hz, 4kHz, 8kHz, 32kHz)
  7. VCC: 전원 공급 핀 (5V)

회로 연결

다음은 DS1307 RTC를 Arduino에 연결하는 방법입니다:

  1. X1, X2: 32.768kHz 수정 발진기 연결
  2. VBAT: 3V 코인 셀 배터리 연결
  3. GND: Arduino GND
  4. SDA: Arduino A4 (I2C 데이터)
  5. SCL: Arduino A5 (I2C 클록)
  6. SQW/OUT: 구형파 출력 (선택 사항)
  7. VCC: Arduino 5V

예제 코드

다음은 DS1307 RTC를 사용하여 시간을 읽고 표시하는 간단한 예제 코드입니다:

 
#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;

void setup () {
  Serial.begin(9600);
  Wire.begin();
  rtc.begin();

  if (!rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop () {
  DateTime now = rtc.now();

  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();

  delay(1000);
}

결론

DS1307 RTC를 사용하면 Arduino 프로젝트에서 정전 시에도 시간을 정확히 기록할 수 있습니다. 이번 포스트에서는 DS1307의 핀 구성과 회로 연결 방법, 그리고 간단한 예제 코드를 통해 실시간 시계를 구현하는 방법을 알아보았습니다. 프로젝트 진행 중 궁금한 점이 있으면 언제든지 문의해 주세요!

이 블로그 포스트가 여러분의 프로젝트에 도움이 되길 바랍니다. 전자 프로젝트의 다양한 가능성을 탐구하며 즐거운 시간을 보내세요! 🎉✨

728x90
반응형