산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 DS3231 RTC 마스터하기: 단계별 튜토리얼

이 아두이노 튜토리얼에서는 DS3231 실시간 시계 모듈 사용법을 배웁니다. 아래 비디오를 시청하거나 작성된 튜토리얼을 읽어보세요.

개요

아두이노 자체에도 내장 시간 유지 기능이 있는데 왜 별도 RTC 모듈이 필요할까요? RTC 모듈은 배터리로 작동해 메인 전원이 끊기거나 마이크로컨트롤러를 재프로그래밍해도 시간을 계속 유지할 수 있기 때문입니다.

아두이노 DS3231 RTC 마스터하기: 단계별 튜토리얼

DS3231 실시간 시계

DS3231은 저렴하면서도 높은 정확도의 실시간 시계로 시, 분, 초는 물론 요일, 월, 년 정보도 유지합니다. 윤년과 31일 미만인 달도 자동 보정합니다.

아두이노 DS3231 RTC 마스터하기: 단계별 튜토리얼

모듈은 3.3V 또는 5V로 작동해 다양한 개발 플랫폼과 마이크로컨트롤러에 적합합니다. 배터리 입력은 3V이며 일반적인 CR2032 3V 배터리로 1년 이상 모듈 전원 공급과 정보 유지가 가능합니다.

모듈은 I2C 통신 프로토콜을 사용해 아두이노 보드 연결이 매우 간편합니다.

회로도는 다음과 같습니다:

아두이노 DS3231 RTC 마스터하기: 단계별 튜토리얼

필요한 것은 4가닥 와이어뿐입니다: 전원용 VCC, GND와 I2C 통신용 SDA, SCL.

필요한 부품은 아래 링크에서 구할 수 있습니다:

  • DS3231 실시간 시계……………..
  • 아두이노 보드 ……………………………
  • 브레드보드와 점퍼 와이어 ………

프로그래밍

모듈 연결 후 아두이노 보드를 프로그래밍해 실시간 시계와 통신하게 해야 합니다. 하지만 아두이노와 I2C 모듈 간 통신 프로그래밍은 코드가 그리 간단하지 않습니다. 다행히 DS3231 RTC용 라이브러리가 인터넷에 여러 개 공개되어 있습니다.

이 튜토리얼에서는 Henning Karlsen이 만든 라이브러리를 사용하며, 그의 웹사이트(www.rinkydinkelectronics.com)에서 다운로드할 수 있습니다.

라이브러리 다운로드 및 설치 후 첫 번째 데모 예제로 RTC 모듈의 시계를 처음 활성화할 수 있습니다. 데모 예제 코드의 setup 섹션에서 요일, 시간, 날짜를 처음 설정하기 위해 주석 처리된 세 줄을 볼 수 있습니다.

// DS3231 라이브러리 데모 예제 코드
void setup() {
  Serial.begin(115200);
  // 아두이노 레오나르도 사용 시 다음 줄 주석 해제
  //while (!Serial) {}
  // rtc 객체 초기화
  rtc.begin();
  // 다음 줄들 주석 해제해 날짜와 시간 설정
  //rtc.setDOW(WEDNESDAY); // 요일을 수요일로 설정
  //rtc.setTime(12, 0, 0); // 시간을 12:00:00으로 설정 (24시간 형식)
  //rtc.setDate(1, 1, 2014); // 날짜를 2014년 1월 1일로 설정
}코드 언어: Arduino (arduino)

첫 줄은 요일 설정, 두 번째 줄은 시/분/초 설정, 세 번째 줄은 일/월/년 설정입니다.

이 코드를 업로드한 후 세 줄을 다시 주석 처리하고 재업로드해야 합니다.

// DS3231 라이브러리 데모 예제 코드
void loop() {
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");
  Serial.println(rtc.getTimeStr());
  delay(1000);
}코드 언어: Arduino (arduino)

loop 섹션을 보면 세 가지 사용자 정의 함수로 RTC에서 정보를 읽어 시리얼 모니터에 출력합니다. 시리얼 모니터에 다음과 같이 나타납니다.

아두이노 DS3231 RTC 마스터하기: 단계별 튜토리얼

아두이노 전원을 끊었다 다시 연결하고 시리얼 모니터를 실행해도 시간이 리셋되지 않고 계속 유지되는 것을 확인할 수 있습니다.

이제 실시간 시계가 가동되었으므로 어떤 아두이노 프로젝트에도 활용할 수 있습니다. 두 번째 예제로 LCD를 아두이노에 연결해 시간과 날짜를 표시해 보았습니다.

아두이노 DS3231 RTC 마스터하기: 단계별 튜토리얼

이 예제의 소스 코드:

/*
 * 아두이노 DS3231 실시간 시계 모듈 튜토리얼
 * Created by Dejan Nedelkovski,
 * www.HowToMechatronics.com
 * DS3231 라이브러리: Henning Karlsen 제작, www.rinkydinkelectronics.com에서 다운로드 가능.
 */
#include <DS3231.h>
#include <LiquidCrystal.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // LC 객체 생성. 매개변수: (rs, enable, d4, d5, d6, d7)
void setup() {
  rtc.begin();
  lcd.begin(16, 2);
}
void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Time: ");
  lcd.print(rtc.getTimeStr());
  lcd.setCursor(0, 1);
  lcd.print("Date: ");
  lcd.print(rtc.getDateStr());
  delay(1000);
}코드 언어: Arduino (arduino)

이상으로 아두이노 튜토리얼을 마칩니다. 궁금한 점은 댓글로 남겨주세요.


제조공정

  1. 아두이노 POV 클락: 퍼시스턴스 오브 비전 LED 디스플레이 제작
  2. 아두이노 RFID 도어락 만들기 – 단계별 완벽 가이드
  3. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  4. 아두이노 듀(Due) + 3.2″ TFT로 만드는 실시간 시계 & 온도 모니터
  5. 아두이노 우노로 베를린 시계 만들기 – DIY LED 매트릭스 시계
  6. TM1637 4자리 디지털 시계: 시간/알람 설정 기능 탑재 (아두이노 나노)
  7. eDOT: 내장 IR 리모컨·자동 밝기 조절 갖춘 정밀 아두이노 시계·기상 관측소
  8. 실시간 아두이노 날씨 시계: OLED 디스플레이로 시간, 날짜, 온도 표시
  9. 아두이노 나노 지문 센서 프로젝트 – 단계별 튜토리얼
  10. 로봇 3D 변화 실시간 탐지, AR 안경으로 병사 안전 강화