Arduino + WS2812B 制造数字时钟


MAKER:parallyze/译:趣无尽 Cherry(转载请注明出处)

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。

观看视频:

往期精彩 LED 项目:
用128只乒乓球制造炫彩时钟
用树莓派或 Arduino 制造 LED 矩阵彩灯
用树莓派制作带谷歌日历的日程时钟

材料清单

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 打印部分

数字 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

安装 LED 框架和灯带

如图所示进行安装。

测试 LED

测试环境电流被限制为 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 旁添加电容器。

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 移除纽扣电池!

现在,整个项目就完成了!

via



坐沙发

发表评论