아두이노 RTC 시계: 날짜·시간 표시 및 버튼 설정 기능
부품 및 소모품
| 부품 |
수량 |
비고 |
| 아두이노 우노 (Arduino UNO) |
1 |
|
| 아다프루트 16x2 LCD (흰색/파란 백라이트) |
1 |
|
| LCD용 I2C 모듈 |
1 |
핀 절약용 |
| RTC 모듈 (DS1307/DS3231 등) |
1 |
실시간 시계 유지 |
| 스파크펀 12mm 푸시버튼 |
3 |
메뉴, 증가, 감소 |
| 10kΩ 저항 |
3 |
버튼 풀다운용 |
| 점퍼 와이어 |
1세트 |
|
프로젝트 개요
소개
이 시계는 제 여러 프로젝트의 기반이 됩니다. 2012년 친구의 튜토리얼에서 영감받아 제작했습니다. LCD 디스플레이, RTC(실시간 시계), 버튼 3개로 구성되며, 편의성과 핀 절약을 위해 LCD와 RTC 모두 I2C 모듈을 사용했습니다.
풀다운 회로로 연결된 3개 버튼으로 코드 재업로드 없이 시간·날짜를 조정할 수 있습니다.
회로 구성
매우 단순합니다. LCD와 RTC가 I2C 프로토콜로 아두이노와 통신하며 Wire 라이브러리를 사용합니다.
- SDA → 아두이노 A4
- SCL → 아두이노 A5
필요 라이브러리
Wire.h (아두이노 IDE 내장)
RTClib.h
LiquidCrystal_I2C.h
코드 구조
루프에서 '메뉴' 버튼 눌림 여부 확인 → 안 눌리면 날짜/시간 표시 → 눌리면 눌린 횟수 카운트하며 세트 모드 진입 → 시간/분/연/월/일 순서로 설정 → 최종적으로 RTC에 새 데이터 기록 후 다시 표시.
본 프로젝트는 Instructables에도 게시되었습니다.
코드
Clock Set Date Time
전체 코드는 프로젝트 페이지 또는 GitHub에서 확인하세요.
회로도
simple_clock_uOb2RxCa71.fzz (프리칭 파일)