让时间“滑”着走,这台机械钟我能玩一天
本帖最后由 RRoy 于 2025-8-19 11:18 编辑这是一个特别的数字时钟,它通过滑动网格来显示或隐藏数字的笔段。
每过一分钟,这些滑块就会同步移动,来显示当前的时间。
整个时钟由一块 Arduino Mega 主板驱动,并使用 DS3231 实时时钟模块(RTC)来确保时间的准确性。每个数字都配有两个滑动网格,由小型步进电机负责驱动。
### 第1步:零件清单
- Arduino Mega 主板
- DS3231 实时时钟模块
- 8个 28BYJ-48 步进电机及配套的 ULN2003 驱动板
- 82厘米 19x19毫米的木条
- 1米 钢丝
- 46颗 4.2 x 14 毫米 大扁头自攻螺丝
- 16套 M4 x 10 圆头螺丝和螺母
- 18颗 M3 x 5 自攻螺丝* 杜邦线若干
- 带 DC 5.5x2.1mm 插头的5V电源线
- 5V/2A 电源适配器
- 用于 Arduino Mega 的电源
###第2步:3D打印零件
需要打印的零件清单:
* A1 - A8 各一个
* B1 和 B2 各三个
* C1 两个
* Digit 四个
* Dot 两个
* Grid 四个
* Gear 八个
* L1 - L4 各一个
* R1 - R3 各一个
* Rackjoin 二十个
* Thinjoin 二十八个
* ArduinoMount (Arduino支架) 一个
* DS3231Mount (DS3231支架) 一个
* ULN2003Mount (ULN2003支架) 两个
作者使用的是 PLA 材料进行打印。打印参数:层高 0.2毫米,填充率 15%。
为了防止翘边,在打印 A、L 和 R 部件时开启了“Brim”(底层扩边)功能。
整个项目大约用掉了2公斤黑色和350克红色的 PLA 材料。
STL模型文件可以在文末打包下载。
### 第3步:电路图
### 第4步:组装
整理好3D打印件。
将 B1 和 B2 板固定到 A1 - A8 的主体框架上,使用大扁头螺丝。
将 C1 板固定到 A1+A5 和 A4+A8 组合件上,使用大扁头螺丝。
用大扁头螺丝安装木条。
用大扁头螺丝将钢丝固定在木条上。调整钢丝的长度,确保时钟能平整地贴在墙上,不会向前倾斜。
将 `Digit`(数字)、`Dot`(点)和 `Grid`(网格)部件粘合在一起。
组装 L1-L4。在 L 形部件上涂一些胶水,然后粘上 `Rackjoin` 部件。确保它与齿条完全对齐。
粘上 `Thinjoin` 部件。请务必确保整个齿条是笔直的,这样才能在轨道中顺畅滑动。
对 R1-R3 部件重复以上步骤。
测试滑块在轨道中的滑动情况,确保它们可以顺畅滑动。如果滑动不畅,用砂纸打磨一下。也可以喷一些硅基润滑剂。
用 M4 螺丝安装步进电机。
安装齿轮。
粘合 `Arduinomount` (Arduino支架)。这个支架一边高一边低——这样安装的 Arduino Mega 主板是倾斜的,方便插拔USB接口。记得把较低的一侧朝向时钟中心。
粘合 `ULN2003Mount` (ULN2003支架) 和 `DS3231Mount` (DS3231支架)。
用 M3 小螺丝安装 Arduino Mega 主板和 ULN2003 驱动板。
安装 DS3231 模块(卡扣式安装)。
将电机的电线连接到 ULN2003 驱动板上。
根据源代码中的引脚定义,用杜邦线连接 ULN2003 驱动板和 Arduino Mega 主板。
制作一个电源线束:把所有 ULN2003 驱动板上的 `+` 引脚连接到 DC 电源线的正极;将 Arduino Mega 主板的 `GND` 和所有 ULN2003 驱动板上的 `-` 引脚连接到 DC 电源线的负极。
将 DS3231 模块的 SDA, SCL, 5V 和 GND 引脚连接到 Arduino Mega 主板上对应的 SDA, SCL, 5V 和 GND 引脚。
### 第5步:软件部分
所需的 Arduino 库:
Accelstepper库:`http://airspayce.com/mikem/ardui ... sAccelStepper.html`
DS3231库:`http://www.rinkydinkelectronics.com/library.php?id=73`
如果你想要12小时制显示(真有人会给数字时钟用这种模式吗?),请将代码中的变量 `twelve_hour_mode` 的值设为 `true`。
代码文件可以在文末打包下载。
### 第6步:运行
将组装好的网格滑块装入轨道,并确保齿条与齿轮啮合到位。
接通电源。
搞定!
页:
[1]