17| 17
|
[项目] 【Arduino动手做】特色乒乓球 LED 壁挂时钟 |
Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。 Arduino的特点是: 1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。 2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。 3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。 4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。 5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。 ![]() ![]() |
本帖最后由 驴友花雕 于 2025-5-18 08:48 编辑 ![]() ![]() 这个很棒的 LED 时钟是一个非常简单的项目,几乎每个人都可以制作。它可以用作时钟,可以是 LED 装饰,或者关闭时可以只是一个不错的装饰品。 1、为什么我制作这个项目? 去年,我看到了一些很棒的项目,人们使用乒乓球作为 LED 的扩散器。这也激发了我用乒乓球做一些事情。在绘制了一些草图并订购零件后,我终于完成了这个项目。由于有些人对教程感兴趣,我决定改进构建并制作一个新的改进版本的乒乓球钟。通过这个 instructable,我希望让其他人感到兴奋和启发,以构建他们自己的项目。 2、设计选择 由于乒乓球不是在矩阵中定向的,因此我必须想出一种显示数字的好方法。我确定的设计为每个数字使用 12 个乒乓球。经过一些草图绘制后,我发现这允许最清晰的数字表示。中排的长度为 20 个球(20*4 = 80 厘米)。之所以出现这个大小,是因为我想让四位数字彼此相邻,中间有一个冒号。我还希望数字之间至少有一排球,以提高可读性。在这样做的时候,我发现这样球和 LED 的总数就变成了 128 个。 3、与第一个版本相比的改进 在图片中,您可以看到以前的版本和新版本(带有 2 个面板的图片,顶部的是旧版本)。较新的版本: - 使用 LED 灯条而不是单独焊接在一起的 Neo-Pixel。 - 像素的方向使其更易于编程。 - 暴露的触点较少。 - 有一个背板,因此您无法透过缝隙看到。 - 允许更轻松地进行修改和可能的维修。 - 看起来更干净,因为从正面看不到电线和电子设备。 - 制作速度要快得多,因为焊接 128*6 触点和剥去相同数量的电线需要一些时间 4、注意: 对于构建这个项目的人:这个项目需要一些重复的工作,我建议先做一个小的测试版本,看看最终结果会是什么样子。这使您可以查看乒乓球是否很好地散射了光线。这也可以防止以后可能发生的错误(例如球之间必须有很大的空间)。我两次都制作了这个显示器的一小块(图片),我很高兴我做到了。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
第 1 步:材料/工具: 1、材料: 本地购买: - MDF 板 (80*30 cm) - 框架的木材(必须 5 厘米宽,总长度至少 200 厘米) - 128 个乒乓球(白色的最好是乳白色的) - 几 (4) 个小钉子 - 旧 USB 电缆(可以为 Arduino nano 供电的电缆) - 旧电子设备的电源线 在线购买 - 5V 10A 电源(较低的安培数也可能有效) - Arduino nano - ws2812b LED 灯带 (5m 30Leds/米 IP30) - DS3231 RTC - 3 芯线(2+ 米) 自选 - 母针连接器 - 电阻器(300 至 500 欧姆之间) 2、工具: - 可切割 30 度角的锯(斜切锯) - 带细齿的手锯(金属锯) - 剥线钳 -烙铁 - 12 毫米钻头 - 32 毫米孔锯 - 木胶 - 热胶 -手电筒 -砂纸 3、注意: 选择正确类型的乒乓球对于这个项目非常重要。乒乓球通常有一个接缝,其中两半加在一起。这本身不是问题,因为通过在中间的一半中打一个孔,接缝在显示屏中将不可见。但是,当乒乓球的一侧也有印记时,球上的印记朝向背面很重要。这可能会导致从前面可以看到一块接缝。购买乒乓球时,也不要购买会发光(反射光线)的球。它们会很好地散射光线,看起来会很奇怪(你不应该买的乒乓球的一个例子)。 摘要:最好使用无印花的无缝乒乓球,这些球是白色且不反光的。 ![]() ![]() ![]() |
第 2 步:在乒乓球上打孔 每个乒乓球后面都有自己的 LED。为了获得尽可能多的光线,需要去除乒乓球背面的一块,这样 LED 的光就只需要穿过乒乓球的一侧。这些孔需要相当大(大约 30 毫米),因为 LED 不会在球后面居中。 在乒乓球上打这些大洞有点挑战。由于球本身很弱,因此在打孔之前需要一些支撑。我通过在一块 MDF 上钻一些 32 毫米的孔来完成此作。锯球时,我用一只手按压乒乓球,将它们压在孔上。由于孔的直径比球小约 8 毫米,因此球只会被压在孔上。在一侧施加压力的同时,我在另一侧锯掉了乒乓球的顶部,只是在中密度纤维板上锯成一条直线。 在锯切它们之前,我确保印在球上的标志在我要锯掉的一侧。我还用手电筒找到了两半加在一起的接缝。我把球多转动了一点,这样从前面就看不到标志,而且从接缝处也看不到。 提示:如果您对乒乓球旋转有问题,在孔内添加一些双面胶带可以帮助将乒乓球固定到位 注意:如果不是所有孔的尺寸都完全相同,也没关系,尺寸可能会相差几毫米。构建完成后,从任何方向都看不到这一点。 ![]() ![]() ![]() ![]() ![]() |
第 5 步:制作框架 框架由 6 件组成。2 个长块和 4 个短块。这些块的所有边缘都应该有 60 度角。由于我的乒乓球的尺寸并不完全是 40 毫米,而是(39,5 左右),我计算了框架件的大致长度(这可以通过测量面板的高度或宽度并使用 a^2 + b^2 = c^2 来完成)。我计算出 2 个长块的内长应该是 66.3 厘米,4 个短块的内长应该是 14.3 厘米。由于我的锯子不是太准确,我确保将它们切得大一点,这样它们就不会太短。 剪完所有 6 个后,我将它们放在乒乓球面板周围,看看它是否合适。它没有,所以我锯了一些几毫米的碎片。我将乒乓球面板周围的所有东西粘在一起,以确保它以完全正确的形状粘合在一起,这是必要的,因为角度没有完美地切割成 60 度,而更有可能是 59.5 毫米。 ![]() ![]() ![]() ![]() ![]() ![]() |
第 6 步:焊接 LED 灯条 需要切割 LED 灯条(1 个 LED、1 个 3 个 LED、1 个 5 个 LED 和 17 个 7 个 LED)。如图所示,LED 灯条需要接线(首先是一个 LED,然后是 5 个 LED,接下来是 17 个带有 7 个 LED,最后是带有 3 个 LED 的一块)。连接条带较短部分的电线应比其他部分长,因为它需要覆盖更长的距离。我将条带贴在一块 MDF 上,看看每个 LED 是否都在自己的球后面。将所有部件焊接在一起后,我通过逐个激活每个 LED 来测试所有焊接连接是否良好 (见附件:checkIfLedsAreBehindBalls.ino)。 ![]() ![]() ![]() ![]() ![]() ![]() |
第 11 步:电子元件 好吧,我(几乎)没有使用 Arduino 的经验,所以这可能并不完美。但我试图以尽可能简单的方式做到这一点。 我将连接器焊接到 Arduino nano 上(图中的黑色东西)(不是必需的)。 我决定这样做,这样如果我想添加按钮或光敏电阻器 (LDR) 或其他功能,可以轻松地再次将所有内容拆开。 接下来,我将 RTC 连接到 Arduino,只需确保时钟模块的 SDA 和 SCl 连接到 Arduino Nano 的 SDA 和 SCL 即可。然后在引脚 9 和 LED 灯条的数据输入之间连接电阻器。 最后,将电线连接到 LED 灯条的末端,也为 LED 灯条的末端供电,以防止电压下降。 是的,真的就是这么简单。 为了给一切提供动力,我剪掉了一根可以连接到 Arduino nano 的 USB 电缆,并将两根电缆的 5V 侧连接到 LED 灯条和切成两半的 USB 电缆。我对 Other side 做了同样的事情。这使我可以在不通过 Arduino 供电的情况下为 LED 灯条供电。 使用旧灯的电缆将 5V 10A 电源与时钟连接。 我还在框架的一侧底部钻了一个孔,以便电源线穿过。这使得时钟可以平靠在墙上,同时如果愿意,仍然可以站在表面上。 剩下唯一要做的就是编写一些代码。 ![]() ![]() ![]() ![]() |
第 12 步:编码 上传代码时,请确保电源已关闭! 在 clock module 知道当前时间之前,必须在 module 上设置时间。幸运的是,有一些代码可用于执行此作。只需添加 4 行代码并安装 DS1307RTC 模块后,我们就可以运行这个(SetTime_on_ds3231_nano.ino,链接到原始代码 / instructable 关于如何在 DS3231RTC 上设置时间)代码,将 Arduino 上的时间设置为 PC 的时间。 设置好时间后,我们可以开始考虑为这个 clock 编写一些代码。我在程序中使用了 2 个库,FastLED 库和 DS3232RTC 库。这两个库几乎可以为你完成所有工作,并允许编程经验很少的人编写程序。 在这里的下面,你可以看到我在这个 Instructable 顶部和大多数图片中的视频中使用的代码。(时间白背景彩虹.ino)
我认为代码相对较短,但当然可以改进。它所做的只是从 RTC 读取时间并显示该时间。应点亮以形成数字的 LED 的位置在矩阵 'Digits' 中硬编码。例如,Digits[0] 包含应点亮以形成零的 LED 的位置。 我还提供了我制作的其他程序,它们是对上述程序的细微改动。程序 'CycleThroughDigits.ino' 只计数到 9999 来演示所有数字的外观。程序 'onlyTime.ino' 只是以不同的颜色显示时间,没有背景颜色。最后,'FastledExampleCode.ino' 是 FastLED 库提供的一些代码,用于演示一些简单的动画(见附件)。 |
附录: 原文链接:https://www.instructables.com/Ping-Pong-Ball-LED-Clock/ 原文作者:荷兰 thomasj152 记录视频:https://www.youtube.com/watch?v=7urN2OS0fjs&t=4s 驱动库之一:https://github.com/JChristensen/DS3232RTC 驱动库之二:https://github.com/FastLED/FastLED 开源代码: ![]() ![]() ![]() |
56.15 KB, 下载次数: 0
11.74 MB, 下载次数: 0
14 MB, 下载次数: 0
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed