LED 时钟项目一直是 Maker 的最爱,每年都会有新的项目推陈出新。本期要为大家介绍一个由 LED 灯带和 Arduino 制造的 7 段多功能时钟。
时钟使用单条的 LED,共由 252 个 LED 组成。其中,框架内只有一条长为 4.2 米的灯条。每一段有 8 条 LED 组块,每个组块有 56 个 LED 灯。
时钟细节:
宽度 40.7厘米;高度 14.8厘米;深度 3.8厘米。总共需要 252 个 LED,1 个连续灯条(WS2812B,60 leds/m,4.2m)。如果是 6 位数的版本(6.47m),则需要 388 个 LED。
观看视频:
https://v.qq.com/x/page/m0975yo3404.html
往期精彩 LED 项目:
《128只乒乓球组成的炫彩时钟》
《LED矩阵彩灯》
《自制日程时钟》
Required Parts and code.zip
[1444684 Bytes at 2020-06-10, 268 次下载]
(Optional) 6 Digits Prerequisites.zip
[1263629 Bytes at 2020-06-10, 206 次下载]
WS2812B LED × 252 (60 个/米)
Arduino Nano/Pro Mini/atmega328 × 1
DS3231 RTC 模块 × 1
6x6mm 按钮 × 2
26AWG 电线 × 若干
USB 电线 × 1
USB 充电器 × 1
M3 螺钉 × 12
全部白色点亮 LED 并用最大额定电流(60mA)驱动时,功耗约 75.6W。如果你打算高亮度点亮,请确保使用适当的散热材料。因为以高亮度运行时钟并设置为 7.5A 的功率极限时,在测试的十分钟内,零件会明显发热。
源代码是基于 S7ripClock 这个项目上的构成的,可点击查看。
https://www.instructables.com/id/S7ripClock-Basic-Edition/
安装时你可以添加了一个壁钩,时钟可以放在电子设备外壳上面。
用 Arduino IDE 上传源代码。这里使用了 FastLED 库。对于 RTC 通信,使用 JChristensen 的 DS3232 库。
项目内部的电源和电流限制为 750mA。你可以根据实际情况进行调整,对接线或电源的进行处理。
数字 3D 打印部分,建议使用黑色材料打印。
L7One_Frame_A.STL×1
L7One_Frame_B.STL×1
L7One_Frame_C.STL×1
L7One_Cover_A.STL×1
L7One_Cover_B.STL×1
L7One_Cover_C.STL×1
L7One_Front_AC.STL×4
L7One_Front_B.STL×1
L7One_Elec_Case.STL×1
L7One_Cable_Cover_A.STL×1
L7One_Feet.STL×1
扩散器(漫反射层)的部分建议使用透明材料打印。
L7One_Diffuser_AC_Type_1 或 2(空)×28
L7One_Diffuser_B_Type_1 或 2(空)×2
单个的 STL 中包含扩散器的类型 1 和类型 2 所有的集合(30个)。
打印的最大组件(x/y)为 187.3mm x 147.6mm。
打印设置:
厚度为 0.5mm;打印层高为 0.25mm;无需支持;最大俯角为 45°。
STL 文件请在项目文件库中下载。
https://make.quwj.com/project/236
如图所示进行安装。
测试环境电流被限制为 500mA,你可以通过 USB 为 Arduino 供电来安全地运行它,将 LED 连接到 +5V/GND,数据输入连接到引脚 6。
在视频中可以看见,测试所有的 252 个 LED。每个 LED 都将被点亮,因此不要过多注意数字和点之间没有使用的 LED 所漏出的光。
视频中,每个位置都会演示显示 0-9,并在左侧或右侧开始从 0-99 的计数。
如果你打算在项目中使用 HH:MM 显示,你只需要做一些测试,其中包括线段和数字的定义等。
测试文件请在项目文件库中下载。
https://make.quwj.com/project/236
根据自己的需求,将扩散器安放到前端的里面,然后将其与数字或点连上。注意数字的方向,其中两个(MM)位于壁的下方且于锯齿的凹痕处相吻合,两个(HH)位于壁的上方。前方的组件是对称,可以 180° 旋转。
通过一次得到最佳的 LED 的真实效果是比较难的,我尝试添加 A 型与 B 型并进行比较。当移动时,B 型头会产生聚光灯的效果,但超过 4m 后,A 型与 B 型之间的差异就很微小了。
除了测试中的三条线外,你还需要在灯条的另一端加入电源线。电源线的选择,根据实际情况来定,将电线穿过框架 A 盖子内的孔。
将所有的盖子盖上 LED 框架。
如图安装,将电子设备外壳放在背面,并固定到位。将外壳连接到中央模块的连接器。
安装硬件的盒子适用于 Arduino Pro/Nano 和 RTC 的各种组合(适用于树莓派的 DS3231、DS1307以及 DS3231)。你可以根据自己的需要选择其他微控制器。
电子部分的连接方式,请点击查看:
https://www.instructables.com/id/S7ripClock-Basic-Edition/
同时可以根据你所需要的亮度和电源来调整,你可能需要在 LED 灯带和 Arduino 旁添加电容器。
该软件是第五版。
基本设置为:
按钮 A:选择亮度。
按钮 A(长按):切换颜色模式(每位数字/每个 LED)。
按钮 B:选择调色板。
按钮 B(长按):切换 12h/24h 模式。
按钮 A + B:进入设置。
在设置过程中:按钮 B->增加+1,按钮 A->接受/下一步
注意:这个设计尚不支持六位数字。
一切正常后就可以工作了。如果有任何问题,请将串行控制台设置为 57600 波特,并查看它的状态。如果时钟立即进入设置并没有显示任何内容,则可能是按钮缩短或连接错误。
你也可以参考我的其他项目。
https://www.thingiverse.com/parallyze/designs
代码文件请在项目文件库中下载。
https://make.quwj.com/project/236
如果需要额外添加两位数字和一个中心模块以显示 HH:MM:SS,请按以下步骤操作。
这一版需要重新设计代码框架,LED 灯将超过 255 个,它会增加了许多变量。需要优化内存使用率。
当使用六位数字时,建议至少以 1.5A 运行,否则即使在最低亮度设置下,中心点要点亮 24 个 LED,所有数字都会变暗。
六位数字的 STL 为:
L7One_Frame_D.STL×1
L7One_Cover_D.STL×1
L7One_Diffs_D.STL×1(只提供一个 Type 1、十四个 AC 和两个 One)
L7One_Connector.STL×1
原始文件部分中的 STL 为:
L7One_Frame_B.STL×1
L7One_Front_B.STL×1
L7One_Cover_B.STL×1
L7One_Front_AC.STL×2
其他:
WS2812B LED×136
M3 螺丝×8
LED 灯条的安装方式如图所示。完成准备工作后就可以连接一切。
STL 文件请在项目文件库中下载。
https://make.quwj.com/project/236
如图安装,从时钟上移除所有物品,直到你可以安全地从右侧模块和中央模块上卸下外盖。
注意:在操作时从 RTC 移除纽扣电池!
现在,整个项目就完成了!