---
title: "아날로그 전압계 3개로 만든, 꽤 진심인 탁상시계"
published: 2026-05-16T22:45:16.000Z
canonical: https://jeff.news/article/2947
---
# 아날로그 전압계 3개로 만든, 꽤 진심인 탁상시계

lcamtuf가 2019년에 만들었던 전압계 시계를 더 보기 좋게 다시 만들고, 목공·CNC·임베디드 제어 과정을 자세히 풀었다. 핵심은 아날로그 패널 전압계 3개를 시·분·초 표시기로 쓰고, DAC 없이 1비트 펄스와 계기 바늘의 관성을 이용해 부드러운 움직임을 만드는 것이다.

- 이 글은 아날로그 패널 전압계 3개로 탁상시계를 만드는 제작기임
  - 저자는 2019년에 이미 단순한 전압계 시계를 만들었지만, 인터넷에 보이는 비슷한 제작물들이 대체로 어설퍼 보여서 더 보기 좋은 버전을 만들기로 함
  - 전통적인 시계판 대신 전압계 바늘이 각각 시, 분, 초를 표시하는 구조임
  - 그냥 아이디어만 던지는 글이 아니라 목공, CNC 가공, 회로, 펌웨어까지 꽤 꼼꼼하게 기록한 제작기임

- 표시부는 아마존에서 산 90도 패널 전압계 3개로 구성함
  - 사용한 부품은 Baomain 65C5 계열의 저렴한 아날로그 패널 전압계이고 개당 약 9달러임
  - 전압계를 분해해서 기존 눈금판 치수를 재고, 접착식 종이에 새 다이얼 데칼을 출력해 붙임
  - 시침용 게이지는 0부터 12까지 13개 눈금을 사용함
  - 분침과 초침용 게이지는 00부터 60까지 61개 눈금을 사용함

- 눈금을 12개나 60개가 아니라 13개, 61개로 만든 이유가 꽤 디테일함
  - 저자는 각 바늘이 뚝뚝 끊기지 않고 연속적으로 움직이길 원했음
  - 예를 들어 11시 30분이면 시침이 11에 고정돼 있으면 안 되고 12 방향으로 절반쯤 이동해야 함
  - 그래서 끝 눈금을 실제 도달점이라기보다 연속 움직임을 위한 기준점처럼 둔 셈임
  - 이런 작은 설계가 결과물의 “싸구려 장난감 느낌”을 줄여줌

- 외관 쪽 난도는 회로보다 훨씬 높았음
  - 저렴한 전압계에는 보기 싫은 플라스틱 플랜지가 있어서, 저자는 이걸 전면에서 안 보이게 숨기기로 함
  - 전면 패널에는 장식용 오목한 패턴을 넣어 단조로움을 줄였음
  - 이 때문에 전면과 후면은 손작업보다 CNC 밀로 가공하는 게 더 효율적이었다고 함
  - 재료는 단풍나무 목재를 켜고, 직각을 맞추고, 대패질한 뒤 CNC로 마감하는 식으로 준비함

- CNC가 없어도 만들 수 있는 우회 방법도 제시함
  - 전면 패널을 두 조각으로 나눠 종이 템플릿을 따라 자르고 붙이는 방식이 가능하다고 설명함
  - 곡선을 정확하게 맞추려면 스핀들 샌더를 쓰는 게 간단한 방법이라고 함
  - 즉, 꼭 고가 장비가 있어야만 가능한 프로젝트는 아니지만, 깔끔한 결과물에는 장비빨이 꽤 들어감

- 곡선형 옆면은 나무를 휘어 붙이는 방식으로 해결함
  - 이음새 없이 보이게 하려면 평평한 나무 조각을 템플릿에 맞춰 구부려야 했음
  - 스팀 벤딩 장비 없이 작은 반경을 만들기 위해 안쪽에 여러 개의 홈을 냄
  - 나무를 적시고 클램프로 고정한 뒤 며칠 동안 말린 다음 전면과 후면에 접착함
  - 스크랩 합판으로 만든 템플릿을 써서 클램프와 래칫 스트랩으로 씨름하지 않고 정확한 핏을 맞춤

> [!TIP]
> 이 프로젝트의 핵심 꼼수는 전자회로보다 물리 특성 활용에 있음. 전압계 바늘의 관성과 코일 인덕턴스를 이용하면 DAC 없이도 부드러운 중간 위치를 만들 수 있음.

- 회로는 외관에 비하면 상당히 단순함
  - MCU는 AVR128DB28을 사용함
  - 전원은 벽 어댑터에서 받고, 8MHz 크리스털 ECS-80-18-4X-CKM을 붙임
  - 32.768kHz 크리스털도 잘 동작할 수 있다고 설명함
  - 패널 전압계 3개는 디지털 출력 핀 PC0, PC1, PC2에 연결함
  - 시간 설정용 버튼 2개는 후면에 달고 입력 핀 PD6, PD7에 연결함

- 흥미로운 건 DAC가 전혀 필요 없다는 점임
  - 일반적으로 아날로그 계기를 원하는 위치로 움직이려면 디지털-아날로그 변환기(DAC)를 떠올릴 수 있음
  - 하지만 저자는 상대적으로 높은 주파수의 1비트 디지털 펄스열만 사용함
  - 전압계 바늘의 관성과 전자석 코일의 인덕턴스가 펄스를 평균화해주기 때문에, 소프트웨어가 제어하는 듀티 사이클에 비례한 중간 위치에 바늘이 머무름
  - 결과적으로 부품 수를 늘리지 않고도 아날로그처럼 보이는 움직임을 얻음

```mermaid
sequenceDiagram
    participant 타이머 as 타이머 인터럽트
    participant 카운터 as 10Hz 시간 카운터
    participant 메인루프 as 메인 루프
    participant 출력핀 as 디지털 출력 핀
    participant 전압계 as 아날로그 전압계
    타이머->>카운터: 크리스털 기준으로 시간 증가
    카운터->>메인루프: 현재 시·분·초 값 제공
    메인루프->>메인루프: 각 바늘 위치에 맞는 듀티 사이클 계산
    메인루프->>출력핀: 1비트 펄스열 토글
    출력핀->>전압계: 평균 전류 형성
    전압계->>전압계: 관성과 코일 특성으로 바늘 위치 안정화
```

- 펌웨어 구조도 미니멀함
  - 크리스털에 동기화된 타이머 인터럽트로 10Hz 카운터를 전진시킴
  - 메인 이벤트 루프는 현재 시간에 맞는 듀티 사이클을 계산하고 출력 핀을 직접 토글함
  - MCU에 하드웨어 PWM 모듈이 있지만, 이 정도 애플리케이션에서는 직접 토글해도 충분해서 굳이 쓰지 않았다고 함
  - 마지막에는 11:59:59에서 넘어가는 롤오버 영상까지 찍어서 바늘 움직임을 보여줌

---

## 기술 맥락

- 이 프로젝트에서 제일 재밌는 선택은 DAC를 안 쓴 거예요. 아날로그 전압계는 입력이 빠르게 흔들려도 바늘이 즉시 따라 움직이지 않고 어느 정도 평균 위치에 머무르거든요. 저자는 이 물리적 둔함을 단점이 아니라 기능으로 써먹은 거예요.

- PWM과 듀티 사이클이 중요한 이유도 여기에 있어요. 출력 핀은 디지털이라 켜짐과 꺼짐밖에 없지만, 켜져 있는 시간의 비율을 조절하면 전압계 입장에서는 평균 전류가 달라진 것처럼 보여요. 그래서 바늘이 0과 최대치 사이의 원하는 위치에 안정적으로 멈출 수 있어요.

- AVR128DB28 같은 작은 MCU로 충분한 이유는 요구사항이 단순하기 때문이에요. 네트워크도 없고 디스플레이 드라이버도 없고, 정확한 시간 기준과 핀 3개 제어만 있으면 되거든요. 그래서 하드웨어 PWM까지 쓰지 않고 메인 루프에서 직접 핀을 토글하는 구현도 현실적인 선택이 돼요.

- 눈금을 13개와 61개로 만든 건 UX에 가까운 기술 판단이에요. 시침과 분침이 계단식으로 튀면 전압계 시계의 매력이 줄어드니까, 실제 시계처럼 연속적으로 움직이는 느낌을 주기 위해 끝 눈금을 하나 더 둔 거예요. 작은 디테일이지만 완성도 차이를 크게 만드는 부분이에요.

## 핵심 포인트

- 90도 아날로그 패널 전압계 3개를 분해해 시·분·초용 커스텀 다이얼을 붙임
- 시침은 0~12의 13개 눈금, 분침과 초침은 00~60의 61개 눈금으로 만들어 연속 움직임을 구현함
- AVR128DB28 MCU와 8MHz 크리스털, 버튼 2개만으로 회로를 단순하게 구성함
- DAC 없이 고주파 1비트 펄스의 듀티 사이클과 계기 바늘의 관성으로 중간 위치를 표현함

## 인사이트

이 글은 ‘예쁜 하드웨어 만들기’와 ‘단순한 임베디드 제어’가 만나는 지점이 재밌음. 부품을 더 넣어서 해결하는 대신, 아날로그 계기의 물리적 특성을 이용해 소프트웨어로 제어를 끝낸 점이 꽤 개발자 감성임.
