0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

二进制时钟DIY图解

454398 来源:工程师吴畏 2019-08-19 10:36 次阅读

第1步:工具和材料

二进制时钟DIY图解

虽然有很长的材料清单,但我在ebay上收集了所有组件成本。便宜组件的缺点是运输速度很慢,但我有时间等待。

工具

烙铁

万用表

热胶枪

凿子

钳子

Sidecutters

材料

2 x Arduino微处理器

20 x WS2812B 5050 RGB LED

1 x 0.1uF电容器

3 x 1 kohm电阻器

1 x 470 ohm电阻

1 x 820欧姆电阻器

1 x 10 kohm电阻器

3 x NPN开关晶体管

1 x红色LED

1 x LDR

1 x IR传感器

1 x IR遥控器

1 x DS3231 RTC

GDP2846A TF卡MP3解码板

1 x 4欧姆扬声器

原型板

各种杜邦连接器

连接线

18号铜线

5v电源

浮木

第2步:硬件

完整的电路按照上面附图。

现在它已经完成,看起来相对简单,但由于这是我迄今为止尝试过的最大项目,因此随着项目的进展,设计的各个元素被添加并进行了测试。这个迭代设计周期允许添加和测试新功能,同时限制错误检查的范围,如果出现错误。

我将在接下来的几个步骤中详细介绍一些绊脚石你经历了同样的痛苦。

步骤3:硬件 - LED阵列

LED阵列通过将各个LED焊接到铜线结构而形成。结构可以根据您的特殊口味进行修改,并且可以根据您的需要进行调整,增加艺术性或简约性。

导线需要很厚才能支撑结构,但也要足够精细,以便将其焊接到LED上的连接焊盘上。我使用了18号线。

框架由连接到VCC的连续电路和用于GND的单个提升器组成。然后进行信号的第三次连接。信号连接需要将LED串联“菊花链”,链条从LED开始指示小时。电线上的尾部留有很长时间,因为它们将穿过外壳,然后弯曲以将其固定到位。 GND线将在外壳内连接在一起。

阵列标记在一块废木上。标记需要考虑到您焊接在LED背面的事实,因此是相反的。我忘记了我的第一次尝试,虽然错误得以纠正,但框架并没有我想要的那么好,所以制作了第二个版本。

在木头上钻孔以保持当铜焊接时,LED就位。您将找到最适合您的方法,但我首先单独构建了列,然后在外部添加最终帧之前添加了它们之间的信号连接。

检查所有连接并仔细检查以确保不存在焊桥。此时我将阵列连接到Arduino并编写了一个简单的程序来测试所有LED是否正常工作。

步骤4:硬件 - 红外接收器

我最初认为IR接收器是项目中的次要组件,我错了!

用于控制LED的时序非常精确被用于处理IR远程命令接收的中断破坏了。这可以通过不使用遥控器来控制时钟来解决,但我很顽固并决定这就是我想要的!一个不同的LED封装(四线而不是三个)可能也解决了这个问题,但我已经有了LED,看到上面,我很顽固!

解决方案是一个单独的arduino接收到的命令来自IR遥控器然后通过串行链路将它们发送到时钟Arduino。这意味着时钟不处理中断,并且可以根据主循环中的需要动作接收串行消息。

解决方案实际上非常简单但是需要一些修补才能理解为什么添加远程功能时,时钟停止工作。这证明了随着项目的进展构建和测试每个组件的优势。当添加遥控器后时钟停止时,很容易确定故障必须与此相关。

电线被焊接到IR接收器的引脚并进行热收缩。杜邦连接器被压接但未插入壳体中。这是为了允许它们插入体内而不需要太大的孔。

步骤5:硬件 - 音频模块

音频模块的附加功能是可选的,可以省略或用简单的压电蜂鸣器代替。但是,二进制时钟的更好的警报音是拨号调制解调器音调序列!!!

GPD2846A TF卡MP3解码板允许播放存储在micro SD卡上的音频文件。它有一个内置放大器,因此扬声器可以直接连接到解码板。解码器板以重复循环播放卡上的文件。这意味着可以通过选择“下一步”来启动警报,并且将重复音调直到选择“播放/暂停”按钮。 “prev”选择仅需要通过长按来控制音量(按下软件长度由软件控制)。

带有晶体管的简单开关电路用于将音频模块连接到Arduino。 Jason Smith在此讲解中提供的说明用于确定开关布置。对互联网的研究表明,有些人将正电压连接到正确的开关垫;但是,我的测量表明它们直接连接到地面(这也是我不需要将地线连接到这些焊盘的原因)。我不知道我是否遗漏了一些东西,但我可以说我所实施的工作正常。

扬声器导线应切成一定长度并焊接到解码板上。将电线焊接到三个按钮输入和电源连接器。使用dupont连接器终止。将解码器板粘贴到扬声器背面,以最大限度地减少安装所需的空间。

在VCC和GND之间使用0.1uF电容来滤除噪声。这是非常重要的。没有它,Arduinos‘会在音频开始时重置。

步骤6:硬件 - 次要组件

以下描述了设计中使用的其他组件。所有这些都相对简单,但我们会对其进行描述,以便您可以关注,重复和改进我所做的工作。

实时时钟(RTC)

RTC模块(DS3231)用于确保即使从时钟断电也能保持时间。 DS3231声称非常准确,可以跟踪日期和时间。对于此项目,仅使用时间,但这对所需的连接没有影响。

标题已从模块中移除并替换为电线。这是为了让设备占用更小的空间,这对于将所有电子设备安装在一块浮木中非常重要!电缆的末端用杜邦连接器终止。

调光器

光敏电阻(LDR)用于测量环境光并改变显示亮度。一个10k电阻用于构建分压器电路,然后由arduino读取并转换为数字值。然后,该值用于计算LED阵列的亮度。此项是可选的,如果您决定删除,则应更新代码以在调用Set_Brightness函数时返回静态值。

应在代码内调整上下亮度级别以适合您的情况,我已经将最大亮度设置为相对较低的水平,因为即使在光线充足的房间里也发现它非常明亮。如果LED太亮,显示屏很难读取。

将电线焊接到LDR的支脚上,连接热缩管并用杜邦连接器端接。

报警指示

A红色LED指示是否设置了警报。连接的电阻是820欧姆,选择它是为了确保LED相对暗淡并且没有将注意力集中在它上面。如果您愿意,可以增加或减少价值。这个项目是可选的,但如果没有它,你就不会知道报警的状态,我建议把它包括在内。

将电线焊接到LED的支脚上,连接热缩管并用杜邦连接器端接。/p》

步骤7:硬件 - 主电路板

原型板用于安装Arduinos和其他电子元件。这包括每个板外项目的连接器的标题。

花一些时间考虑每个组件的位置,以最大限度地减少所需的连接,并允许轻松创建轨道。我最终得到了电路板一端的所有连接器,其中VCC和GND轨道在电路板上运行。

除了简化连接之外,还要确保最终布局能够成为可能。包含在您选择的外壳内,您仍然可以访问Arduinos上的USB连接器以上载所需的任何代码更改。

两个Arduinos之间的串行连接在一端有一个插头。这是为了允许在代码上传期间断开连接。

步骤8:软件

代码分为两个程序,一个用于Arduino充当红外接收器,另一个用于时钟。

红外接收器

在上传红外接收器代码之前,遥控器发送的十六进制值需要确定。 IRremote库附带标题为“IRrecvDemo”的示例代码。上传到Arduino时,按键的十六进制值显示在Arduino IDE的串行监视器中。

需要记录七个键的值,然后输入“IR Receiver”的定义部分。我不确定为什么,但我的遥控器每个按钮有两个代码,发送的代码随机出现。该软件允许远程发送任何代码。

所需的按钮是:

向上

向下

向左

向右

警报

静音

时间

二进制时钟

注释包含在代码中,并提供了实现的说明。

上传代码后,将使用以下说明:

设置时间:按时间然后 Up 或向下设置小时,按向右然后向上或向下设置分钟,按右返回时钟

设置闹钟:按闹钟,然后按向上或向下设置小时,按向右然后向上或向下设置分钟,按向右返回时钟

关闭闹钟(设置时):按闹钟

打开睡眠:按睡眠

设置显示颜色:按向左或向右循环选择颜色

设置闹钟音量:按向上或向下提高或降低音量

播放闹铃:当闹钟未被激活时,按睡眠。

第9步:身体

我决定在时钟体上使用一些浮木。这件作品需要足够大,以便能够将其挖空以容纳电子设备,但不要太大而不能放在架子上。我认为身体的选择也是在找到“正确的”片之前在海滩上游荡几天的借口!

替代材料可以用于身体。其范围从一块新木材到混凝土浇筑。您的想象力是唯一阻止制作真正独特时钟的东西!

一旦选择了您的身体,您需要考虑安装各种组件的位置以及需要钻孔的位置。

首先为硬件制作腔体。这应该尽可能大,以简化安装,但仍保持木材的强度。我的作品实际上是一些交织在一起的根,所以必须小心不要完全敲掉。工具可用性有限,因此通过用大钻头钻多个孔然后用凿子将其平滑来制造腔。在进行测试时,测试是否适合cicuit板,以确保腔体足够大。

完成后,可以为扬声器安装额外的切口。在这样做时,请考虑下面对电路板的干扰以及如何进行各种连接。

然后为各种组件钻孔。测量LED阵列引线的间距,并且实际上证明是构造铅笔的厚度。这用于获得正确的孔间距。旨在使所有组件紧密贴合,以简化它们的粘合。

钻完所有孔后,用喷雾密封剂涂上木材。我选择了一种低光泽产品

第10步:最终装配

喷雾消失后,清除各种组件的孔。

LED阵列是第一个安装的组件。将引线推过孔直到达到所需的高度。然后将GND引线弯曲,使它们相互接触并焊接。连接电线用于VCC,GND和信号。电缆的末端用杜邦连接器终止。然后使用热胶以确保阵列中没有移动。

将静态袋切割并胶合到位以覆盖显示器的裸铜线。这是为了确保它们在插入原型板时不会短路。可以使用支架来实现相同的目标,但我有静电袋并且没有任何支架!

然后将所有其他组件安装到位。使用热胶将每个固定到位。一旦传感器被固定,Dupont外壳就安装在IR传感器电缆上。

接下来安装了原型板和RTC。两者都用一个小螺钉固定。此时连接所有电缆,最后将扬声器/音频模块放置到位并固定。

底座上有一块轻微的岩石,这是通过添加几个橡胶脚来纠正的。支脚还确保扬声器螺钉不与工作台表面接触。

第11步:完成了!

如果你设法做到这一点,你将有一个完整的,希望独特的时钟。请发布您的作品!

此时我无需改变或改进设计。我的儿子们建议显示器应该自动改变颜色,或者只是随机间隔发疯。我喜欢他们思考的方式,并且可能很快就会这样做。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    795

    浏览量

    41653
  • 时钟
    +关注

    关注

    11

    文章

    1734

    浏览量

    131488
收藏 人收藏

    评论

    相关推荐

    hex格式和二进制的区别

    HEX格式和二进制在多个方面存在显著的区别。以下是对这两者的对比: 一、定义与表示方式 HEX格式 : HEX,全称为Intel HEX,是一种用于存储和传输数据到嵌入式系统(如单片机)的文件格式
    的头像 发表于 11-18 15:24 525次阅读

    二进制编码器在自动化领域的作用

    二进制编码器是一种将二进制信号转换为数字信号的电子设备,广泛应用于自动化领域。 一、二进制编码器的工作原理 二进制编码器是一种将二进制信号转
    的头像 发表于 11-06 09:53 355次阅读

    二进制编码器的种类及特点

    二进制编码器是一种电子电路,用于将二进制信号转换为其他格式,如十进制、格雷码等。以下是一些常见的二进制编码器种类及其特点: 优先编码器(Priority Encoder) : 特点 :
    的头像 发表于 11-06 09:47 493次阅读

    二进制编码器应用场景 二进制编码器与模拟编码器比较

    编码器是将信息从一种形式或格式转换为另一种形式的设备。在数字和模拟系统中,编码器扮演着至关重要的角色。二进制编码器和模拟编码器是两种常见的编码器类型,它们在不同的应用场景中有着各自的优势和局
    的头像 发表于 11-06 09:45 447次阅读

    二进制编码器工作原理 如何选择二进制编码器

    二进制编码器是一种数字电路,它将输入的二进制代码转换为对应的输出信号。在数字系统中,编码器用于将数据从一种形式转换为另一种形式,以便于处理和传输。 二进制编码器工作原理 输入与输出关系 :
    的头像 发表于 11-06 09:44 776次阅读

    二进制补码及与原码的互相转换方法

    大沙把一些基础的知识说清楚,本文介绍二进制补码及与原码的转换方法。 先说原码,原码‌是一种计算机中对数字的二进制定点表示方法。在原码表示法中,数值前面增加了一位符号位,最高位为符号位,0表示正数,1
    的头像 发表于 09-19 22:25 507次阅读

    二进制处理中的一些技巧

    二进制和十进制的处理中,有时候一些小技巧是很有用的。 1、把十进制数转换成二进制数 (1)在MATLAB中有一个函数dec2bin,可以把正整数转换为2
    的头像 发表于 07-05 11:51 577次阅读

    二进制串行计数器工作原理是什么?

    在数字电路设计中,计数器是一种非常关键的组件,用于测量时间、计数事件或跟踪状态变化等。其中,二进制串行计数器作为一种常用的计数器类型,在多种应用场景中都发挥着重要作用。本文将对二进制串行计数器
    的头像 发表于 05-28 15:52 872次阅读

    如何实现二进制和BCD码数据的相互转变?

    如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示为二进制数和十进制数的一种表示方法。在计算机系统中,
    的头像 发表于 02-18 14:51 3604次阅读

    二进制与逻辑电平的变化范围

    二进制中的两个数字0和1称为位(bit, 是二进制数字binary digit的缩写)。在数字电路中,使用两个不同的电平表示这两个位。一般情况下,1 用高电平表示,0用低电平表示,这种逻辑体制称为正逻辑。
    的头像 发表于 02-04 16:54 1397次阅读
    <b class='flag-5'>二进制</b>与逻辑电平的变化范围

    鸿蒙二进制数组创建

    背景 c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。 接口
    的头像 发表于 01-31 15:24 1276次阅读

    二进制、八进制、十六进制在现实当中有什么意义?

    二进制、八进制、十六进制在现实当中有什么意义? 二进制、八进制和十六进制在现实生活中有着广泛的应
    的头像 发表于 01-16 11:14 5442次阅读

    10进制转换为二进制的算法

    进制转换为二进制是计算机科学中非常基础且重要的概念之一。在理解和应用计算机科学的基础知识时,掌握这个算法是至关重要的。 在开始讲解十进制转换为二进制的算法之前,让我们回顾一下十
    的头像 发表于 01-15 10:32 3314次阅读

    10进制转换为二进制的算法

    10进制转换为二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10进制数转换为
    的头像 发表于 01-11 09:14 2388次阅读

    labview二进制字符串转数值

    LabVIEW是一种图形化编程环境,用于实时数据采集、信号处理以及自动化控制等领域。它采取了数据流编程的思想,用户可以通过将各种功能模块进行连接,轻松搭建起复杂的系统。 在LabVIEW中,二进制
    的头像 发表于 01-05 16:20 2702次阅读