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

DCF77 라디오 시계 및 분석기 v2.0: 아두이노 메가/우노 기반 정밀 시계

프로젝트 개요

독일 프랑크푸르트에서 송출되는 DCF77 장파(77.5kHz) 표준 전파를 수신하여 시각을 동기화하는 고정밀 라디오 시계입니다. 단순한 시계 표시를 넘어 DCF77 신호의 펄스 폭, 주기, 패리티 비트 등을 실시간 분석·표시하는 '분석기' 기능을 탑재했습니다. 버전 2.0에서는 우도 클라인(Udo Klein)의 슈퍼필터(Superfilter)를 별도 아두이노 우노로 구현하여 수신 감도를 대폭 향상시켰습니다.

버전 2.0 주요 개선사항

하드웨어 구성

메인 보드: 아두이노 메가 2560

기능 핀 비고
DCF77 신호 입력 (슈퍼필터 출력) D2 (인터럽트 0) 라이징/폴링 에지 모두 감지
PIR 모션 센서 D3 절전 모드 제어용
부저 스위치 D4 DCF 펄스 음성 모니터링
차임 스위치 D5 정시 알림음 제어
절전 스위치 D6 디스플레이 상시 ON/OFF
DS18B20 온도 센서 D8 1-Wire 버스
온도 Min/Max 리셋 버튼 D9 누르면 리셋
MAX7219 CS/CLK/DATA D10/D11/D12 7세그 디스플레이 3개 제어 (공통 캐소드)
요일 LED (일~토) D22~D28 7개 LED
CEST/CET/윤년/에러/동기 등 상태 LED D29~D50 총 22개 상태 표시 LED
압전 부저 A7 DCF 펄스 비프음
사운드 보드 볼륨 A6 차임 볼륨 제어
차임 트리거 A5 LOW 액티브
I2C (RTC DS1307) SDA/SCL 하드웨어 I2C

슈퍼필터 보드: 아두이노 우노 (별도)

우도 클라인의 DCF77 라이브러리 기반. 입력된 노이즈 섞인 DCF 신호를 필터링하여 클린한 펄스 스트림을 출력.

출력 핀 설명
필터링된 DCF 출력 D12 메인 보드 D2로 연결
반합성 신호 A2 (D16) 디버깅용
완전 합성 신호 D6 이상적 DCF 신호 재생성
모니터 LED A4 (D18) 입력 신호 표시
1Hz 펄스/락 LED D10 필터 락 상태
신호 품질 LED D13 좋음/나쁨 표시

DCF77 프로토콜 핵심

소프트웨어 아키텍처 (메인 스케치)

인터럽트 기반 펄스 측정


volatile unsigned int DCFSignalState = 0;
unsigned long leadingEdge, trailingEdge, previousLeadingEdge;

void int0handler() {
  DCFSignalState = digitalRead(DCF77PIN);  // CHANGE 인터럽트
}

void scanSignal() {
  if (DCFSignalState == 1) {  // 라이징 에지
    leadingEdge = millis();
  } else {  // 폴링 에지
    trailingEdge = millis();
    // 주기(Period) = leadingEdge - previousLeadingEdge  → 1000ms 기대
    // 펄스 폭(Pulse Width) = trailingEdge - leadingEdge  → 100/200ms 기대
    // 오차 범위 초과 시 에러 플래그 설정
    // 패리티 검사 수행 (비트 28, 35, 58에서)
    // 분 마커(약 2000ms 갭) 감지 시 finalizeBuffer() 호출
  }
}

버퍼 처리 및 디코딩

주기적 태스크


void loop() {
  if (DCFSignalState != previousSignalState) scanSignal();
  checkSwitches();      // 스위치 상태 변화 감지
  checkPIR();           // PIR 모션 감지 → 절전 타이머 리셋
  tasksEverySecond();   // 초단위: 온도 요청, 부저, 차임 등
  tasksEveryMinute();   // 분단위: 디스플레이 업데이트, 패리티 LED 리셋
  tasksEveryHour();     // 시단위: 에러 카운터 리셋, 차임 울림
}

디스플레이 구성 (MAX7219 7세그먼트 × 7개)

디바이스 # 표시 내용 밝기
0 내부 LED 링 (수신 중인 비트) 1
1 외부 LED 링 (최종 디코딩된 비트) 1
2 버퍼 비트/에러 카운터 15
3 펄스 폭/주기 (L/R 분할 표시) 2
4 온도/주번호 15
5 날짜 (DD.MM) 7
6 시각 (HH:MM:SS) 1

절전 모드 (파워 세이빙)

온도 측정 (DS18B20)

차임(정시 알림) 기능

프론트 패널 제작 노하우

  1. Inkscape로 벡터 디자인 (1:1 스케일 필수)
  2. 온라인 포토 서비스(Dibond 패널 인쇄) 이용 시 반드시 1:1 출력 확인 후 주문
  3. 레이저 커팅 아크릴 코팅 방식은 공차 문제로 비추천
  4. 드릴링/라우팅으로 LED/스위치 홀 가공 후 패널 부착

교육/연구 활용 가치

참고 자료

제조공정

  1. 쿠쿠 시계: 역사, 장인 정신, 현대적 진화
  2. 아두이노 POV 클락: 퍼시스턴스 오브 비전 LED 디스플레이 제작
  3. 아두이노로 만드는 레트로 누미트론 클락: 심플하고 신뢰성 높으며 에너지 효율적
  4. 아다프루트 60-LED 네오픽셀 링 4개로 스타일리시 벽시계 만들기
  5. DIY 아두이노 워드 클럭 – 세련된 실시간 텍스트 시계 만들기
  6. 아두이노 실시간 시계로 이슬람 기도 시간 알림 장치 만들기
  7. 블루투스 제어 아두이노 스파이봇(Spybot) 만들기
  8. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  9. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  10. DS1302 RTC와 아두이노 우노로 만드는 신뢰할 수 있는 알람 시계