如何制作字幕时钟

电子说

1.2w人已加入

描述

今天,我将向您展示如何构建字幕时钟。它基本上是一个使用文字显示时间的时钟。我还将向您展示如何使用微控制器来使用移位寄存器和RTC。 移位寄存器可以非常方便,如果你在微控制器中耗尽引脚,那么了解它们是一件好事。

不要再等了,直接进入它。

Arduino

第1步:了解所有步骤

第2步:获取所需的部件。

Arduino

Arduino:

74HC595移位注册:

DS3231 RTC:

ULN2803达林顿晶体管阵列:

步骤3:测试移位寄存器。

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

有四种移位寄存器 - 串并输出(SIPO), SISO,PISO和PIPO。

我们将使用74HC595这是一个8位的SIPO移位寄存器,这意味着它需要8位串行数据,并将其转换为8位并行数据。您可能想知道我们为什么需要移位寄存器。让我们来看看。 Uno有14个数字I/O引脚和6个模拟输入引脚。即使在组合它们之后,我们也只有20个引脚,其中并非所有引脚都能输出。这就是问题所在,因为我们将在这个项目中使用大量的LED。

移位寄存器消耗的微控制器引脚数量非常少,在这种特殊情况下为3,并且可以用它来控制大量的LED,在这种情况下,这是8。那不是它。该移位寄存器也可以与另一个移位寄存器进行菊花链连接,以控制更多的LED,第二个移位寄存器可以与下一个移位寄存器进行菊花链连接,依此类推。我想说的只是使用三个引脚,你可以控制很多很多数字设备。

参见移位寄存器的引脚图。引脚号1到7以及引脚15是并行输出数据。

与所有74系列IC一样,8和16是电源引脚。

引脚14 - 也称为串行输入,引脚12 - 也称为锁存器,引脚11 - 又称时钟,是我所谈到的控制引脚。

引脚10称为串行清零,用于清除移位寄存器的输出,在整个项目中保持高电平;名为输出使能的引脚13,顾名思义,使能输出,保持低电平。

引脚9用于菊花链并连接到下一个74595。

让我们看看工作情况。在发送串行数据之前,锁存器被拉低。然后逐个发送8位中的每一位。移位寄存器通过检查时钟引脚的状态确定新数据即将到来,如果时钟引脚为高电平,则数据为新数据。当所有位完全发送时,锁存器被拉高以实际反映8个输出引脚中的数据。

要在Arduino IDE中执行所有这些操作,有一个名为shift out的函数有四个参数(见图)。前两个是自解释,第四个是8位串行数据,这里用二进制格式写。如果第三个参数是MSB优先,那么串行数据的MSB将首先被发送,并且实际上将反映在剩余数据之前的寄存器的‘Qh’中,如果第三个参数是LSB优先,则LSB将是引脚‘Qh’中显示。

现在这个移位寄存器的电流输出能力仅为每个引脚20 mA,我们将需要更多,这就是ULN2803的用武之地。

如果你想测试移位寄存器的功能,我在这个草图中附上了一个草图和图片,只需施加电源,将引脚11,12和14连接到Arduino的任何数字引脚并上传草图。请参阅视频以便更好地理解。

步骤4:设置RTC的日期和时间。

我像其他任何I2C设备一样将RTC连接到Arduino (SDA到A4和SCL到A5),以及应用电源。然后我打开了此步骤中附加的草图,并通过参考其上方的注释行设置“setDS3231time”的参数,以设置RTC的正确日期和时间。然后我取消注释该行并将程序上传到Arduino。在没有断开任何连接的情况下,我再次评论该线路并将草图上传到Arduino。现在断开RTC的电源,保持一两分钟,再次连接到Arduino,然后打开串行监视器。如果显示器上显示的日期和时间正确,则表示RTC工作正常。

步骤5:制作电路板。

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

此步骤附有连接图。您可以手工焊接或订购PCB。这一切都取决于你。我订购了PCB,因为我曾经手工焊接过PCB,而且它的使用时间很长,底部也非常笨拙。

我从JLCPCB订购了我的PCB。

原理图链接和PCB:https://easyeda.com/Tesalex/Word_Clock_copy-c7c7a7.。.

第6步:准备LED。

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

1。用3V电池检查所有LED。

2。切掉LED的顶部。

3。缩短LED的电阻和阳极(长腿)的一条腿。

4。将电阻短路和阳极焊接在一起。

对要使用的所有LED执行此操作。

步骤7:构建主干和最终测试。

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

LED完成后,我从一个尺寸为8x8英寸的器具包装中取出纸板。

我在白色上打印了这个步骤附带的模板纸和透明纸上的两份副本,因为墨水有点轻。

现在我将模板切成实际尺寸,然后用胶水粘在纸板上。在此之后,我根据字的长度为LED打孔,以便在LED发光时它们看起来不暗。然后我拿了4根实心铜线,将它们粘在两排LED之间。然后我将LED推入孔中,保持电阻器靠近铜线。在此之后,我将电阻器焊接到铜线上并将相同字的LED的阴极焊接在一起。然后我切掉了多余的导线。

现在我拿了三条带状电缆,每根电线有8根电线,一端焊接公头,另一端焊接到LED上。然后这些标题将转到PCB的母头。但是哪根线会被焊接成什么字?根据我编写的程序,连接此步骤的是连接头的连接顺序。因此,标题1的第一个线应该转到二十五,二到三十,第二个标题的第一个线到一个,依此类推。

现在您将注意到最后4个标题未连接到任何事情你可能会注意到背面的铜线必须焊接到5伏特。所以,我将它们全部缩短并将它们连接到最后一个标题,如果你还记得也将最后一个母标题连接到Vcc或5伏特。 “it is”和“o‘clock”这个词必须始终打开,因此我将它们焊接到接头的第二个引脚上,然后在PCB上将它接地。最后,“分钟”字并不总是打开,并且也需要控制,所以我把它焊接到第三个插头的第五个引脚,这就是为什么我们将引脚3缩短到第五个母头,同时将PCB组装为引脚3控制我写的程序中的单词分钟。

话虽如此,现在是时候通过连接各自位置的标题检查功能,将草图上传到Arduino和施加5伏特,我的工作很好。我快速将DC桶形连接器焊接到电源引脚上,因为我将使用5伏适配器,否则我会使用7805,我已经在PCB上留下了一个空间。

步骤8:去除轻度出血。

Arduino

Arduino

Arduino

Arduino

用于消除轻微出血换句话说,我使用了1厘米高的纸板片,并在每个单词之间用一些热胶粘住它。我从中心开始然后一路走来。在此之后,我测量并切割每个地方的纸板,然后再用两滴热胶粘贴它。

步骤9:将所有物品放入机箱中。

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

Arduino

我用内径为8x8英寸的12毫米MDF制作了一个外壳,并确保纸板完美贴合。我还剪了一个适合大小的亚克力板,请记住,这次,它一定不能太厚。我附上了丙烯酸板材,并在外壳的一侧为桶形千斤顶打了一个孔。

现在我通过移除角落将每个乙烯基塑料带到尺寸,然后将它们堆叠在一起并装上它们两个相反的方面。在黑胶唱片的背面,我用不透明的胶带贴上没用的字样。

然后我把胶水放到了外壳上,还有我准备好的纸板和电源,一切看起来

我从角落切下一块纸板,以便在需要时可以轻松将其取下。

几点变化(非必要):

我将电源线更换为更厚的规格,以便它可以轻松承载所需的电流,并使用母头(推荐)连接RTC,因为它有时需要更改日期和时间。如果需要,你可以添加热胶将纸板固定到位,但是即使在地震中我也有足够的摩擦力。

步骤10:完成。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分