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

아두이노 프로 미니 & DS1302 RTC로 정밀 7세그먼트 시계 만들기

부품 및 소모품

부품수량비고
스파크펀 아두이노 프로 미니 328 (5V/16MHz)1
DS1302 RTC 모듈1IC 소켓과 크리스탈 제거 후 사용
CR1220 배터리 및 홀더1BS-1220-1 타입 권장
0.1μF 1206 SMD 커패시터1
10μF 1206 SMD 세라믹 커패시터1
택타일 스위치 (12mm, 버튼 캡 포함)4
3A 미니 DC-DC 스텝다운 컨버터1
0.28인치 공통 캐소드 4자리 7세그먼트 디스플레이36
MAX7219 DIP IC18
부저1
머신 헤더 (수/암, 40핀 스트립 8개씩)1세트
DC 파워 소켓 (5.5x2.1mm)1

필수 도구 및 장비

앱 및 온라인 서비스

프로젝트 소개

Hackaday.io에서 Frugha가 만든 7세그먼트 디스플레이 어레이 시계를 보고 영감을 받아 제작했습니다. 원작은 0.56인치 디스플레이를 사용해 크기가 큰 반면, 본 설계는 0.28인치 디스플레이를 사용해 크기를 1/4로 줄였습니다. 소프트웨어는 알람 기능과 시간/날짜/알람 설정이 가능한 설정 화면을 추가해 완전히 재작성했습니다.

설정 화면

상단의 SELECT 버튼으로 설정 화면 진입. 현재 선택 항목이 깜빡입니다. SELECT 버튼으로 시간, 날짜, 알람, 알람음, 밝기, 날짜 형식, 시계 모드 순으로 순환. ENTER 버튼(두 번째)으로 세부 설정 진입, 여러 설정 항목이 있으면 ENTER로 순환. UP/DOWN 버튼(아래 두 개)으로 값 변경.

날짜 화면

시계 화면에서 ENTER 버튼을 누르면 5초간 날짜 표시. 설정 화면의 '날짜 형식'에서 DD-MM 또는 MM-DD 형식과 폰트 선택 가능.

설계 고려사항

단일 디지트 대신 4자리 디스플레이 사용으로 보드 설계 단순화. 0.28인치 디스플레이가 작아 MAX7219 칩을 별도 보드에 배치. 머신 헤더로 보드 간 연결. 이글(Eagle) 파일 제공으로 상업 제작 또는 자가 제작(토너 전사법) 가능.

컬럼 보드 (6개 필요)

모든 디스플레이를 장착하는 6개의 컬럼 보드 제작. 중간 헤더부터 납땜하고 바깥쪽으로 진행. 매치스틱 등으로 소켓을 들어 올려 핀 납땜 용이하게 함. 미세 팁 납땜 인두와 0.5mm 솔더 사용 권장. 디스플레이 테두리를 무광 검정 페인트로 칠해 간격으로 인한 흰 선 방지. 각 모듈에 번호 표시해 메인보드 장착 시 순서 유지.

MAX7219 메인보드

PCB 레이아웃 단순화를 위해 MAX7219 세그먼트/디지트 매핑을 하드웨어가 아닌 소프트웨어에서 조정. 암 헤더를 컬럼 보드의 수 핀에 먼저 꽂은 상태에서 납땜하면 정렬이 정확함. 모듈 번호가 있으면 재장착 시 동일 위치 보장.

MPU 보드 (마이크로프로세서 보드)

버튼 4개와 SMD 커패시터 2개는 보드 후면에, 나머지 부품은 전면에 실장. 저프로파일을 위해 FTDI 핀 헤더를 아두이노 프로 미니가 아닌 PCB에 직접 납땜. DTR과 VCC 핀에서 와이어 2개로 PCB 연결.

케이스 제작

전면/후면 STL 파일 제공. 0.2mm 레이어 높이, 브림 사용. 전면은 빌드 플레이트만 닿는 서포트 활성화. MAX7219 메인보드+컬럼 모듈은 전면에서 슬라이드 장착. 헐거우면 마스킹 테이프로 조임. MPU 보드는 후면에 핫글루로 고정.

소프트웨어

MD_MAX72XX 라이브러리 필요. 하드웨어 테스트용 Hardware_Test_V1 스케치로 모든 세그먼트 점등 확인 후, Clock_V4 스케치 업로드.

코드

주요 파일: Clock_V4.ino, Digits.h, Tunes.h, Button.h, Button.cpp, Hardware_Test_V1.zip

Clock_V4.ino (일부 발췌)

/* 7 Segment array clock - Based on Frugha's clock, Modified by John Bradnam */
#include 
#include 
#include 
#include 
#include 
#include "button.h"
#include "Tunes.h"
#include "Digits.h"

#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 18
#define LED_CLK 13
#define LED_DATA 11
#define LED_CS 10
#define SPEAKER 2
#define SW_UP 3
#define SW_DOWN 4
#define RTC_CLK 5
#define RTC_IO 6
#define SW_ENTER 7
#define RTC_CE 8
#define SW_SELECT 9

DS1302RTC rtc(RTC_CE, RTC_IO, RTC_CLK);
MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, LED_CS, MAX_DEVICES);

// EEPROM 데이터 구조체, 버튼 처리, 시간/날짜/알람/밝기/알람음/날짜형식 설정 로직 포함
// showTime(), showDate(), showSetup(), displayLargeDigit(), displaySmallDigit(), displaySquareDigit() 등
// playSong(), playNote()로 알람 멜로디 재생

Digits.h

큰 숫자(6x6), 작은 숫자(5x3), 정사각 숫자 폰트 데이터 및 ASCII 매핑, 디지트 맵 정의

Tunes.h

알람 멜로디 데이터 (다운로드만 가능)

Button.h / Button.cpp

디바운스, 반복 입력 처리 등 버튼 라이브러리

커스텀 파트 및 인클로저

3D 프린팅용 STL 파일 제공 (전면/후면 케이스)

회로도

제조공정

  1. 아두이노 POV 클락: 퍼시스턴스 오브 비전 LED 디스플레이 제작
  2. DIY 아두이노 워드 클럭 – 세련된 실시간 텍스트 시계 만들기
  3. 아두이노 실시간 시계로 이슬람 기도 시간 알림 장치 만들기
  4. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  5. 아두이노 8×8 LED 매트릭스 플립 시계 – DIY 실시간 시계 프로젝트
  6. 아두이노 우노로 8×8 LED 매트릭스 마스터하기: 단계별 가이드
  7. eDOT: 내장 IR 리모컨·자동 밝기 조절 갖춘 정밀 아두이노 시계·기상 관측소
  8. 컴팩트 아두이노 레이더 시스템: HC-SR04 초음파 센서 & 1.8인치 디스플레이
  9. 실시간 아두이노 날씨 시계: OLED 디스플레이로 시간, 날짜, 온도 표시
  10. DS1302 RTC와 아두이노 우노로 만드는 신뢰할 수 있는 알람 시계