本期教程是一款 3D 打印的机械数字时钟,它有三个显示数字的轮子,它们分别位于不同的轴(X、Y、Z)上。这款时钟设计独特,实用性强,喜欢的话可以复刻一版。
特性
这款设计独特的时钟是由单个步进电机驱动
所有零件的尺寸均在 180 x 180mm 以内
通过手动(物理)操作轻松调整时间
时钟上的数字字符较大,时间清晰可见
时钟设计时间表
2023年10月29日:增加 80% 缩小版打印型号。
2023年11月4日:修改 “motor-gear.stl”,增加了一个 1mm 的轴圈,以便与电机轴更好匹配。
2023年11月4日:增加蜂窝式前面板。
2023年11月6日:我注意到我上传了错误的.ino文件(程序),与电路的照片不匹配。随后,我上传了正确的版本。
2023年11月10日:增加了完全透明和部分不透明的前面板。
2023年11月18日:改进代码,直接输入以秒为单位的时钟速度补偿值。
numechron.ino
[1943 Bytes at 2024-01-26, 47 次下载]
stl2.zip
[190699 Bytes at 2024-01-26, 36 次下载]
stl1.zip
[1883591 Bytes at 2024-01-26, 60 次下载]
stl3.zip
[1990745 Bytes at 2024-01-26, 59 次下载]
28BYJ-48 齿轮步进电机 x 1
电机驱动板 x 1
Arduino x 1(或者其他微控制器,ESP32、Raspberry Pi 等)
2mm 自攻螺丝 x 若干
请按照提供的资料下载打印所有零件。
除了 “10min-rotor.stl” 外,其他组件不需要支撑结构。
请清除组件上的碎屑和斑点,尤其是轴和齿轮的表面。
数字字符用不同颜色的材料打印。
数字字符部分很难区分。特别是数字 6 和 9,但其实两者的形状并不相同。数字字符背面的弯曲率在小时、1 秒和 10分钟的位置不同。
3D 打印文件在这里可以下载:
https://make.quwj.com/project/478
可以使用胶水或塑料焊接技术将数字粘在转轴上。
我推荐塑料焊接,因为它简单、快速且美观。使用温控烙铁将其设置为低温(250℃),以避免材料烧焦。
转子上的孔被每个数字隐藏起来。在固定数字之前,请确认位置是否正确。
安装右边部分
将 “int gear.stl” 和 “hour driver.stl” 连接到 “frame right.stl” 的孔上。
将两个调节器连接到支架上。
使用 “1min-holder-1.stl” and “1min-holder-2.stl” 将 “1min-rotor.stl” 连接到支架上。
最后检查一下所有零件能否顺利转动。
安装秒钟
组装 “10min-driver.stl” 和 “10min-rotor.stl”。部件的方向由连接部件之间的梯形键(图中红色标记)来调节。
将齿轮上的两个标记相对对齐。
请确保将 10 分钟调节器放在 10 分钟驱动器上。
安装剩余部分
连接步进电机和 “motor-gear.stl”。
将时针转轴与左侧架子组装在一起。
用螺钉连接其余零件。
你可以选择你喜欢的微控制器来驱动步进电机。
我选择的是 Arduino 主板。以下程序(“numechron.ino”)是基于 Arduino 的示例。如果使用其他微控制器,每分钟驱动电机为 1536 步。
Arduino nano 和驱动板,它的外壳可参考: https://www.thingiverse.com/thing:5145523 。
如果电机旋转方向相反,请更改源代码
从
int port[4] = {7, 6, 5, 4};
到
int port[4] = {4, 5, 6, 7};
另外, Arduino 程序运行资料在这里可以下载:
https://make.quwj.com/project/478
小时和 10 分钟的转轴可以用手旋转,但只能向前旋转。
Arduino 的程序在重置后立即驱动电机。因此,你可以通过重置按钮继续 1 分钟。
同时也可以通过复位按钮对 1 分钟的转轴进行校准。当数字到达正确位置时,按下重置按钮。
在这里提供了较小的版本。
所有零件都在原来基础上 80% 的比例打印。
使用 “frame-base.stl” 和 “motor-gear.stl” 的修改后的型号,步进电机不会改变。打印时,这些模型都要缩小到80% 的比例打印。
如果 “1min-holder-1.stl” 太薄,那么请使用 “1min-holder-1-thicker.stl”。
缩小版 3D 文件在这里可以下载:
https://make.quwj.com/project/478
如果将 “right-frame.stl” 打印为与转轴不同的颜色,请在小时和分钟之间使用冒号(:),组件为“colon-base-optional.stl”。
这里还有另外四种不同类型的前面板(全面板、部分面板、不透明面板或蜂窝面板),用于隐藏机械部分和不用显示的数字。(除了部分蜂窝,它们还没有测试,但应该可行)
将数字字符和前边框分开,赋予每个数字不同的颜色。(每个数字的形状与一体式数据相同,“all-digits-and-front-frame.stl”
文件可在 thingeverse 上找到源文件,https://www.thingiverse.com/thing:6285769 。
同时,可替代部件 3D 文件在这里可以下载:
https://make.quwj.com/project/478
由于 Arduino 的时钟不如普通的时钟准确。请调整该值以提高时钟的准确性。
测量你的时钟的误差。正确调整时钟,等待 24 小时,然后以秒为单位测量时钟的误差。
在源代码的第 3 行输入名为 COMPENSATION_SECONDS 的值的错误值(以秒为单位)。如果你的时钟走的太快,输入正值,反之亦然。
编译程序并闪存到微控制器中。