创意DIY机械段码时钟


木易
转载
发布时间: 2025-06-09 19:43:34 | 阅读数 0收藏数 0评论数 0
封面
几个月前,我建立了一个两位数的机械7段显示,我变成了一个倒计时计时器。它出来相当不错,许多人建议加倍显示,使一个时钟。

准备工作:

材料:

材料名称
数量
备注
Arduino Uno
1
DS1302时钟模块
1
PCA9685 16通道舵机驱动模块
2
微型伺服器
28
杜邦线
多备一点
公头排针
1
木头排针
1
3mm 贴片
1
黑色喷漆
1
5V 5A电池
1
12V电源
1
灯丝
1

工具:

工具名称
数量
备注
3D打印机
1
1

3D打印塑料部分

我设计的7段显示尽可能简单。伺服器也是支撑其上方的部分的支撑支架。每个部分需要两个3D打印组件,一个间隔块用于支撑伺服器的底部,而显示部分直接粘在伺服臂上。

打印伺服段和点使用明亮的彩色解放军。我用的是半透明的绿色,但红色、橙子或黄色也应该很好。我用黑色聚乳酸的间隔块和点的支持,使他们不可见时,部分被转到关闭的位置。

STL
7 Segment Display Dots.stl
11.61KB
STL
Spacer Block.stl
684B
STL
7 Segment Display Piece.stl
5.94KB
STL
Dot Support.stl
4.77KB
2

准备控制板和接线

您需要使用两个PCA9685 16通道PWM驱动器来驱动28时钟伺服系统。我把伺服系统分成小时和分钟的数字,每对数字由一块板驱动。所以我有一块板控制伺服两个小时的数字和第二个控制伺服两个分钟的数字。

要将两者链接在一起,您需要制作一个6线带状电缆连接器,并将第二个插头条焊接到第一个伺服控制板的另一端。您还需要更改第二块板上的I2C地址,使其与第一块板上的地址不同,并具有唯一标识。

您还需要将线束连接到Arduino的三个板(两个伺服板和时钟模块)。您需要为每个板提供5V和GND,以及与Arduino引脚A4和A5(Arduino Uno上的I2C)的I2C连接,以及时钟模块引脚CLK,DAT和CLK分别与Arduino上的引脚6,7&8连接。

电源直接从12V电源供应到Arduino,并使用5V 5A BEC连接到PWM驱动器顶部的两个端子。您只需要连接一个伺服驱动器的权力,它将饲料的权力,第二次通过6线带状电缆连接。

3

组装伺服系统

一旦你打印完你的片段,你需要把背面和侧面喷成黑色,这样当它们旋转90度到关闭位置时就不那么明显了。

然后你需要用热熔胶把分段粘到伺服臂上。它有助于把它们粘到伺服上,手臂已经在伺服上了,这样你就可以检查你是否把它们粘得笔直水平。

你还需要用胶水滴到每个伺服的底部。

将一个小销子粘在圆点的背面,然后粘在基础块上。我把这些小棍子也喷成黑色,这样从一个角度看它们就不那么明显了。

4

设置和测试

我给所有的伺服器编号,并把编号写在每根引线上,这样更容易跟踪它们。我从个位数的顶部开始,一直工作到十位数的中间部分。这也是我将它们插入伺服控制板的顺序,记住板上的标识符从0到13计数,而不是从1到14。

然后,我把这些片段放在一张桌子上,它们之间有足够的空间进行测试,这样它们就不会在设置旅行限制和方向的同时移动到一个和另一个。如果您尝试将它们设置在一起,您可能会有一个或两个尝试在错误的方向移动或在某个阶段超过行程,并击中另一个可能会损坏段,伺服臂或剥离伺服齿轮。

5

验证代码

乍一看,代码看起来很复杂,但由于使用了两个库,实际上相对简单。也有很多重复,因为有四个不同的7段显示需要更新。

下面是代码的摘要描述,查看完整指南以获得更详细的解释和下载代码的链接-机械7段显示时钟

我们首先导入两个库,用于时钟模块的virtualabotixRTC. h和用于伺服驱动器的Adafruit_PWMServoDriver. h。Adafruit库可以直接通过IDE中的库管理器下载和安装。

然后,我们为每个控制板创建一个具有相关地址的对象,一个用于小时数字,一个用于分钟数字。

然后,我们有四个数组来存储每个伺服的开和关位置。你需要在接下来的步骤中调整这些数字,以确保你的伺服系统在打开时是直立的,在关闭时旋转90度,并且不要过度行驶。

数字数组存储每个要显示的数字的每个段的位置。

然后我们设置时钟模块并创建变量来存储当前和过去的单个数字。

在设置功能中,我们启动并设置PWM控制板,并在需要时更新时钟时间。然后我们运行一个循环,将显示设置为8 8:8 8,这样我们就知道所有伺服的起始位置。这也是用来设置伺服,使他们都面临着正确的。

在主循环中,我们从时钟模块获取更新的时间,将其拆分为四位数,然后检查时间是否从上次检查时发生了变化。如果时间已经改变,那么我们更新显示,然后更新以前的数字。

在更新显示功能中,我们首先移动中间的线段。这是首先完成的,因为在移动中间段之前,需要一些逻辑来移动与中间段相邻的两个顶部段,否则它会撞到它们。一旦中间段被移动,则剩余段被移动到正确的位置。

6

将时钟组床到背板上

一旦我完成了测试,我组装伺服到背板上使用上述布局作为指导。

白色区域是整个电路板的大小,浅灰色区域是围绕每个数字的伺服段移动的区域,深灰色区域的轮廓是每个数字的外部6段的中心线。

我切开这块板,在布局上做了标记,然后把数字粘在适当的地方,组成了钟面。

然后,我在每个伺服器附近钻孔,并将电线喂到电路板的背面,这样它们就不那么明显了。

我用双面胶带把电子设备安装在钟的背面。

7

最终设置和操作

一旦伺服都准备好了,我删除了所有的伺服武器的最后调整的立场的部分。您应该在这种状态下为Arduino通电,以便显示8 8:8 8,然后断开电源,这将重新调整所有伺服系统的中心,以便您可以将伺服臂重新置于尽可能接近垂直的部分。

然后,您需要依次启动Arduino,并在四个阵列中调整段的开和关位置,以便伺服系统在打开时完全垂直,在关闭时旋转90度,而不会过度移动。这一步是相当耗时的,需要一点耐心,但最终的结果是值得的!

时钟可以使用12V电源和连接到它的5V BEC供电。如果电源下降,RTC模块上的电池将保持时间,以便当电源恢复时,时钟自动重置到正确的时间。

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报