一款更精美的电压表时钟
摘要
一份详细指南,介绍如何制作具有自定义贴花、CNC加工外壳和连续运动指针的模拟电压表时钟。
暂无内容
查看缓存全文
缓存时间: 2026/05/17 00:43
# 更漂亮的电压表时钟
来源:https://lcamtuf.substack.com/p/a-nicer-voltmeter-clock
早在 2019 年,我做了一个简单的电压表时钟:
[](https://substackcdn.com/image/fetch/$s_!Z11a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36abddfb-0eec-414b-a161-dec9f99c9652_1200x800.jpeg)*时钟,第一版。*
顾名思义,这类时钟使用模拟面板电压表代替传统表盘来显示时间。这个想法并非我原创,所以我从未真正写过关于这个设计的博客;我只是做了一个,放在办公桌上。
这个想法一直有人沿用,但我在网上看到的大部分设计过于复杂且不够美观,所以当我决定做一个改进版时,我觉得最好能更好地记录下来。整个过程始于在 3D 设计软件中做的粗略模型:
[](https://substackcdn.com/image/fetch/$s_!tavR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b70ea2-2faf-42f9-b78e-baf54eeb7921_2481x1473.png)*在 Rhino3D 中做的新设计模型。*
这个版本的电压表时钟,我选择了三个来自亚马逊的通用 90° 面板电压表(链接:https://www.amazon.com/dp/B092VBLGR2,约 9 美元)。我将它们拆开,仔细测量了表盘尺寸,然后在粘性纸上打印了替换贴纸。可打印的 PDF 模板可以在这里找到:https://lcamtuf.coredump.cx/soft/embedded/meter_clock2.pdf。
[](https://substackcdn.com/image/fetch/$s_!ownk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70462256-5017-4960-b097-244b8e982f6f_2000x1334.jpeg)*定制 5V 面板电压表。*
请注意,新小时表盘有 13 个刻度,从 0 到 12,而分钟和秒模板有 61 个刻度,从 00 到 60。这是因为我想为每个指针实现连续运动;这意味着在 11:30 时,小时表盘不能只停在 11;它需要向第十二个刻度移动,即使永远达不到。
除了其他一大堆问题,我使用的廉价“Baomain 65C5”电压表还有一个相当难看的塑料法兰。我决定将这个法兰隐藏起来,并使用凹陷的装饰图案来保持前面板的美观。这使得用 CNC 铣床切割前后面板比手工制作外壳(就像我第一版那样)更为方便:
[](https://substackcdn.com/image/fetch/$s_!Oonp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110dd37d-c767-4e63-aeec-4ca2b73650db_2000x1334.jpeg)*加工好的前面板和后面板。*
圆形的侧壁则带来了完全不同的挑战。为了实现无缝外观,我需要使用成型模板将一块平直的木材弯曲。在没有蒸汽弯曲夹具的情况下,我必须在侧壁上切割一系列内部槽口,这样木材就更容易弯曲:
[](https://substackcdn.com/image/fetch/$s_!jzUh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95f07cbd-39fa-4d3a-9073-6385ecc4f0ad_2000x1334.jpeg)*使用内部模板手动弯曲侧壁。*
木材需要弄湿、夹紧,然后晾干。几天后,我将弯曲的侧壁粘到前面板和后面板上,并依靠另一个用废胶合板切割的模板来实现精确贴合,而无需再用夹具和棘轮带来回折腾:
[](https://substackcdn.com/image/fetch/$s_!gYFN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d2eaff-6c6e-4e7d-b6f0-5fbd1f8a57dc_2000x1334.jpeg)*使用外部模板(胶合板)粘合钟体。*
总之——这是打磨并涂了一层硝基纤维素漆后的组装成品:
[](https://substackcdn.com/image/fetch/$s_!1eR0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5d890c5-76a0-4e16-b076-8671682e26e7_2000x1334.jpeg)*初步组装。*
还不错吧?
电路部分则无趣得多,只花了一个小时左右:我拿起一块久经考验的 AVR128DB28 (https://ww1.microchip.com/downloads/en/DeviceDoc/AVR128DB28-32-48-64-DataSheet-DS40002247A.pdf) 微控制器,用一个壁式电源适配器供电,连接到一个 8 MHz 晶振(ECS-80-18-4X-CKM (https://www.ecsxtal.com/store/pdf/hc-49usx.pdf))。32.768 kHz 晶振也可以。面板连接到三个数字输出引脚(PC0、PC1、PC2)。最后,两个输入引脚(PD6、PD7)连接到安装在背面的两个小按钮,用于设定时间。
请注意,电路不需要数模转换器或其他任何额外元件来驱动电压表;相反,我只使用了相对高频的数字脉冲序列。电压表的惯性负责其余部分,根据软件控制的信号占空比稳定在中间位置。
代码可以在这里查看:https://lcamtuf.coredump.cx/soft/embedded/meter_clock2.c;代码简短且注释详尽。基本思路是使用与晶振同步的定时器中断来推进一个 10 Hz 计数器。完成这一步后,主事件循环计算合适的占空比,然后手动切换输出引脚。虽然芯片有硬件 PWM 模块,但应用足够简单,使用 PWM 电路并不会带来什么好处。
这是在大约 11:59:59 拍摄的“翻滚”视频:
再见。
如果你喜欢这篇文章,你也会喜欢《电路秘史》(https://lcamtuf.coredump.cx/electronics/)。这是一本图文并茂、通俗易懂的电子学入门书——从导电原理到嵌入式系统编程。包含 290 多幅彩色图表、420 多页原创内容,且零 AI 参与。
#### 关于本文的讨论
### 准备好了解更多?
相似文章
PTP墙钟不实用且过于精确
使用树莓派和LED矩阵显示器构建PTP墙钟的指南,演示通过精确时间协议实现精确时间同步。
Super Nintendo 的核心
对 Super Nintendo 中时钟生成硬件的详细分析,解释了用于产生所需频率的两个振荡器和可调电容器。
Clawdmeter 将你的 Claude Code 使用统计转换为一个微型桌面仪表盘
一个名为 Clawdmeter 的新开源项目,可将 Claude Code 使用统计数据转换为一个带有像素艺术动画的微型桌面仪表盘,它采用 Waveshare ESP32-S3 显示屏和蓝牙连接构建而成。
@charles_irl: 为 LLM Engineer's Almanac 添加了一个有趣的小部件——一个“Token Timing Simulator”,让你直观感受 w…
在 LLM Engineer's Almanac 中添加了一个 Token 计时模拟器小部件,展示了 DFlash 技术实现约 1000 TPS 的效果,帮助用户直观理解基准测试性能数据。
用铝箔球制作无线电波探测器!
逐步指南:使用铝箔和压电打火机制作简单的无线电波探测器,并解释电磁波的物理原理。