无限时钟 - Arduino - WS2813 和 DS3231


dooooit_4000007
转载
发布时间: 2025-08-29 14:57:02 | 阅读数 0收藏数 0评论数 0
封面
无限时钟 - Arduino - WS2813 和 DS3231 我想做一个时钟,而且很想尝试用Arduino制作一个无限时钟。我想用一些常见的材料来制作它,然后自己编写程序。 什么是无限时钟? 3D幻镜效果是指两个平行的反射面,它们可以将一束光线来回反射无限次(理论上是无限次)。反射光看起来似乎向远方后退,因为光线实际上正在穿越这段距离。通过在无限镜中添加彩色LED,我们尝试用后退的彩色光作为指针来模拟模拟时钟。 在本指导中,我将引导您完成创建无限时钟的步骤,然后查看程序中的一些可调参数。
1

本项目所需零件

零件清单:

  1. Arduino Uno在 taydaelectronics 上售价 6 美元
  2. Arduino Uno 的 Protoshield。你可以在亚马逊上以 2.50 美元的价格买到。
  3. DS3231 加电池。您可以在亚马逊上以大约 3.00 美元的价格购买一个。
  4. WS2813 LED 144,1 米。亚马逊售价 20 美元。
  5. Taydaelectronics 上的470 OHM 1 W 碳膜电阻器价格约为1 美分。
  6. Taydaelectronics 上的1000uf 16V 电解电容器 9 美分
  7. 5v 电源-我使用了旧的黑莓充电器。
  8. 6英寸圆形镜子。亚马逊上大约5美元
  9. 亚马逊上大约有 10 个6 英寸亚克力圆盘
  10. 2 - 6英寸木质绣花箍(没错) 亚马逊上每个售价2美元
  11. 银色单向镜膜。eBay 好像最便宜。
  12. 各式各样的电线。
  13. 3/8" 木质方形销钉 HomeDepot 现价 1.27 美元
  14. 旧木钟底座或其他展示架。
  15. 2 条小扎带。

原型扩展板并非必需,但如果你喜欢使用 Arduino,你会发现它在构建这些项目时非常方便。如有需要,可以将原型扩展板换成面包板。

您可能还需要一把烙铁。

我预计该项目的成本约为 40 美元


2

设置您的电脑

如果这是您的第一个 arduino 项目:

  1. 从arduino.cc下载 arduino 软件
  2. 使用 USB 线将 Arduino 连接到 PC。
  3. 启动软件后,您将需要安装三个库:
  4. 单击“草图”菜单,然后单击“包含库”,然后单击“管理库...”
  5. 安装两个库:FastLED 和 RTClib。更多详情请见图片。
  6. 从我的 github获取 Arduino scketch
  7. 我将在最后检查代码,以便您可以根据需要进行修改。
  8. 此时加载程序Infinity_Clock_DS3231_WS2813.ino
  9. 转到 Sketch 并上传以加载 Arduino。
  10. Instructable 的最后一部分涵盖了一些可配置的参数。

最好现在就上传草图,因为一旦添加外部电源,最好不要将其连接到您的电脑。

3

连接项目。

如果您使用 ProtoType Shield,请将其放在 Arduino 上。

接线是这个项目中最复杂的部分。我附上了一些图片,方便大家查看。建议在通电前仔细检查所有连接。

DS3231 - 实时时钟模块

DS3231模块放入面包板并按照图中所示进行连接。

  1. Arduino 接地至 GND
  2. Arduino 5V 转 VCC
  3. Arduino A4 转 SDA
  4. Arduino A5 转 SCL

在图片中,我将 5v 和地线连接到面包板上的自身运行,因为稍后我们将要连接外部电源。


安装 WS2813 LED 灯带

  1. arduino 5V 到您的 5V 电源。
  2. 中间两个连接器是冗余数据引脚。它们连接到引脚 7
  3. 确保在引脚 7 和两根数据线之间放置一个 470 欧姆电阻。
  4. Arduino 接地至最后一个连接器。

连接外部 5V 电源(不建议长时间使用 arduino 电源运行 LED 灯带)。

  1. 在引线之间放置一个 1000uf 电解电容器。
  2. 将电源和地线连接到 Arduino 电源 (5V) 和地线 (GND)

我不建议同时将外部电源和 USB 连接到 Arduino。


4

构建无限镜

构建无限镜的步骤:

  1. 将薄膜贴到亚克力片上。这样就能做出单向镜了。
  2. 将亚克力圆盘放入绣花箍中。拧紧螺丝,防止其滑落。
  3. 把镜子放在另一个绣花箍上。拧紧螺丝。
  4. 将方形木钉切成小段,约 1/2 英寸
  5. 将 LED 灯带绕成环状,使 LED 指向圆圈内部。
  6. 使用扎带将 LED 固定到位。
  7. 您可能需要在拉链带上切一个缺口。
  8. 将环套在镜子上
  9. 使用木块作为垫块
  10. 将方块粘到位。它们应该足够牢固,能够固定住 LED 灯。
  11. 将亚克力镜放在镜子/LED 的顶部并粘合到位。


5

代码

该程序使用了实时时钟库和Fastled库。

以下是一些用于自定义行为的代码片段。

  1. OFFSET - 是重叠部分。程序预期重叠部分从 LED0 开始。我的偏移量为 3 个 LED。
  2. CLOCKSTART - 时钟正午的位置。LED 30 将其置于电气连接的对面。

我编写了使用 HTML 颜色的程序。您可以从https://htmlcolorcodes.com/获取它们 ,只需将程序中的 # 替换为 0x 即可。

您可以更改上午/下午的背景

  1. backgroundAM =0x070707;
  2. backgroundPM =0x646D7E;

时钟的 LED 指针:

  1. 时针 =0x000FFF;
  2. 最小手数 =0x00CC00;
  3. secHand = 0xcc0000;

为了使它脱颖而出,我添加了一个选项,为时针配备 3 个 LED,但允许您更改中间 LED 两侧的颜色以使其脱颖而出。

  1. theeledhour=true; //你可以将其设为真或假
  2. 额外时针 =0x00001F;

另一个不错的功能是,RTClib 会检测到你的 DS3231 电池已移除,并将时间设置为 PC 编译时间。这对于新款 DS3231 来说是一个不错的功能。


如果你没有在文档开头看到草图,可以在 GitHub 上找到

感谢您阅读这篇指导文章。我儿子帮忙了,这对我们来说是个有趣的项目。希望我们能被考虑参加光学竞赛。


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