圣诞灯控制器的制作图解

电子说

1.3w人已加入

描述

步骤1:先决条件

好吧,因为是我,我确保您对普通凡人都难以理解这条指令……只是在开玩笑:p。但是实际上可能很难,因为所有这些都是为了与Linux操作系统(特别是Ubuntu)一起使用而设计的,并且大多数人使用Windows或Mac。从理论上讲,可以对主要软件进行修改,以支持这两个平台,但是我不会这样做,因为它已经对我有用,并且由于我免费提供了该软件,因此请选择或保留它。

但是,除了所有这些,您可能还需要:-具有Linux的计算机,最好是运行Ubuntu的笔记本电脑

-计算机必须同时安装python 2.x(而非3.x)以及pygame和python-serial(可以通过在终端中输入“ sudo apt-get install pygame python-serial”来获得)

-Arduino微控制器,在我的情况下,这是Arduino Mega 2560

-带有灯光的圣诞树上的

-电子学和基本焊接技能

-焊接设备

-可使用列出的零件

-许多鳄鱼夹(我知道它不是专业的,但我知道电的工作原理从理论上讲,我进行了很多测试,以确保这对于我所运行的特定条件而言是安全的)。

-我现在想不起来的几件事:p

第2步:详细材料

好,因此,如果您想具体说明硬件方面所需的内容,请参见以下列表:

-arduino,可以是我使用了Mega

-A电缆将arduino与计算机连接。-关于(或确切地说)15个鳄鱼夹

-5继电器能够在120伏电压下切换至少0.5安培的负载,但可以由12伏或更低电压供电

-5 2N3904 NPN开关晶体管

-5 4.7K欧姆电阻器

-A 9至12伏壁式适配器,您可以修改

-A电源线旧设备或其他东西

-足够大的Perfboard,可以在其上构建威廉希尔官方网站 ,或者如果您真的想要,则为面包板

-用电线连接所有必需的连接

步骤3:理论

因为我是我,所以我在理论上做了很多工作,甚至没有尝试为此项目构建或编程任何东西。我确实使用了万用表来找出通过一串普通的灯流了多少电流,并发现地雷消耗的电流约为0.4安培,请记住,您的测量结果可能有所不同。我的继电器在230伏时的额定电流为3安,因此我认为它们可以在120伏时轻松达到0.4安。经验法则:使继电器的额定承受的电流至少是打算通过它们的电流的两倍,这也应该与大多数其他组件保持一致。线圈的电阻平均为690欧姆。然后,我对2N3904晶体管进行了研究。我发现,基极可以在最大信号电流为50 mA的情况下进行开关,而发射极-集电极的电流将在最大200 mA的条件下工作。物理救援!我的晶体管信号是来自arduino的5伏,电流*欧姆=伏,因此可以换算成欧姆=伏/电流。这意味着我需要至少100欧姆才能在5伏电压下切换0.05安培的电流,但是更高的欧姆意味着更少的电流,直到确定的时间点还是可以的。我使用了一个4.7k欧姆的电阻器,因为这是我所需要的全部,并且它仍然提供了足够的电流来开关晶体管。

为确保晶体管可以处理继电器的开关,我采用了类似的逻辑。我将使用9伏特来切换继电器(即使它们的额定电压为12伏特,我的仍然可以在9伏特时切换),并且我必须确保流经晶体管的电流不会超过200 mA 。因此,在电流*欧姆=伏特的情况下,我将其重写为电流=伏特/欧姆。因此9伏特/690欧姆= 0.013安培或13 mA,恰好在安全区内。

然后,查看威廉希尔官方网站 在任何一次可能处理的最大电流,我得到的电流值为0.4安培。一串灯,然后将其乘以5,以获得可以随时打开的通道数,以获得2安培的值,这有点低。但是,所有这些计算只是为了确保一切都在理论上起作用,并且不会有任何起火或被炸。..想象一下规划飞机建造将人们带到月球的理论:p

第4步:威廉希尔官方网站 和原型

因此,请确保每件事物都能在实际环境中工作在生活中,我只在一个很小的面包板上建立了威廉希尔官方网站 的一个通道。还给出了威廉希尔官方网站 原理图,没什么特别的,每个通道只有一个晶体管,一个电阻和一个继电器。..非常便宜和简单。

第5步:测试原型

由于理论和威廉希尔官方网站 设计不可行,因此我决定该进行实际测试了。因此,我仅将9伏电源连接到威廉希尔官方网站 ,将灯连接到墙上的插座,但以某种方式将继电器连接,使其像中断开关一样工作。然后,我使用信号引脚40将arduino连接起来,然后将arduino的地线与威廉希尔官方网站 的地线连接起来,以便信号实际上会记录在开关威廉希尔官方网站 中。我将arduino连接到了我的Ubuntu笔记本电脑,并运行了一个简单的小闪烁代码来打开和关闭灯。我使用了这个蒸汽朋克笼式灯,因为它也吸了0.4安培的电流,因此与圣诞灯的负载相等。该代码还显示了插针13上内置LED上的信号状态,并显示了以下内容:

void setup(){

pinMode(13,OUTPUT);

pinMode(40,OUTPUT); }

void loop(){

digitalWrite(13,1);

digitalWrite(40,1);

delay(1000);

digitalWrite(13,0);

digitalWrite(40,0);

delay(2000);

您可以看到,非常简单的概念验证测试代码,它将继电器打开一秒钟,然后关闭两秒钟。我附了一段视频,对测试进行了演示。那里的开关很安全,但是继电器绕过它打开和关闭灯。

步骤6:开始施工

因此,我认为我应该以一种使桥接和填充最少的方式最容易构建的方式,将组件布置在穿孔板上。因此,这只是我如何排列组件的图片,非常紧凑。

步骤7:焊接时间

好,既然组件已经布置好,我就可以开始焊接并使设计永久化。是的,在将它们焊接在一起之前,我确实测试了我使用的所有组件。这里没有太多要讨论的内容,但是我确实有一个非常方便的帮助站(请注意双关语:p),如果您进行焊接项目并且还没有焊接项目,我建议您购买一个。第二张照片也太暗了,因为我在晚上焊接,但是在外面,因为我的父母不太喜欢我在房间里吸烟:p

步骤8 :成品威廉希尔官方网站

因此,在进行一些焊接之后,这里出现了成品威廉希尔官方网站 。看起来不是很完美(尤其是没有角:p的情况下),但是它可以工作并且所有连接都在那里。如您所见,在底部,我使用了拉直的回形针和小块的回形针来连接120伏特部分。我认为回形针很粗且坚固,足以承受约2安培或更高的电流,但是,伙计,它们难于焊接或其他什么问题:p另外,我还使用了从组件上剪下的引线来进行零件之间的其他连接,因为我更喜欢用焊料拖出一条路,因为它浪费很多,而且看起来不太好。构建完之后,我分别测试了每个通道,以确保所有5个通道都正常工作,尤其是自从我上次尝试焊接晶体管以来,它们并没有真正讲述这个故事:p但是幸运的是,所有通道都可以工作,我没有不需要进一步修改或更换组件。

步骤9:使其坚固

《我注意到一些区域正在旋转,这不是您想要的,因为焊点可能会破裂或引线会折断。幸运的是,我认为用热胶覆盖易碎区域是一种很好的做法,尤其是在我刚开始的焊料项目容易破损之后。因此,我只是借用了姐姐的粉红色(或紫色?)热胶枪,并在几乎整个底部表面添加了热胶,特别注意了那些不应该移动的区域。我只需要确保不覆盖接触线,否则我将无法连接威廉希尔官方网站 的各个部分:p

步骤10:完成工作

所以我使用15个左右的鳄鱼夹为整个威廉希尔官方网站 布线。另外,由于所有的东西都在我的房间里,所以我决定将它实际上塞进一个盒子里,以使其在我的房间和客厅之间更便于携带。我必须确保任何地方都没有多余的接触点或短路,因为这可能会引起火灾或烧毁我的arduino和/或笔记本电脑。然后将其连接到圣诞灯,如第二张图片所示,我以怪异的方式排列它们,以便与中性线有一个连续的连接,而每串灯都可以有单独的“热”连接,因此可以触发分别。黑色鳄鱼夹是常见的连接,其他颜色是单独触发的单独连接。我只有3串灯,所以我无法使用所有5个通道,但这足以测试威廉希尔官方网站 和为此编写的软件。

步骤11:软件

该软件实际上是该项目的主要重点。它是由K-Labs软件开发部门(即我)开发的。与设计和构建硬件相比,我可能花费更多的时间来编写和完善控制器程序。由于该项目的启动有些晚(这就是为什么您不应该在截止日期前几天进行项目的原因),所以我只是在12月21日(圣诞节前夕)的3天才开始编程。我花了整整两天的时间进行编程,花了半天的时间调试和完善代码,但是仍然可能有一个错误使我无法进行检测(发生在您是程序员以及alpha和beta测试人员的情况下)。另外,不幸的是,对于许多人来说,该程序是为Ubuntu Linux设计的。我真的没有花任何时间在其他平台上开发该程序,因为我使用的任何计算机上都装有Ubuntu,但是从理论上讲,只需很少的调整即可使其在其他平台上运行。此外,该程序还被设计为具有与Audacity相似的界面,相似的配色方案和时序序列。

要使该程序正常工作,您需要安装python,最可能的是python 2.7,因为这就是我编写程序时使用的方式。另外,您还需要两个额外的python软件包,一个用于图形界面,一个用于与arduino进行串行通信。要安装这些软件包,只需打开终端并输入“ sudo apt-get install python-serial pygame -y”,但不带引号。然后,在安装了这两个软件包之后,该程序应该可以工作。要运行它,您不能简单地双击它,因为它将在没有root特权的情况下打开,并且串行通信需要root许可。因此,只需打开终端,使用cd命令导航到目录,然后键入“ sudo python xmascontr.py”,程序将打开。但是,在打开程序之前,请确保已连接arduino,否则它将无法正常工作,因为该程序仅在启动时检查arduino。

要知道它是否准备就绪,可以使用它。右上角,在我的图片中,您会看到一个绿色的圆圈。这是指示灯,绿色表示可以使用。如果出现红色圆圈,则意味着它找不到正确的端口,或者arduino已断开连接。如果出现红色圆圈并且arduino已连接,则需要在文本编辑器中打开程序,并在所有注释行之后将变量更改为arduino的路径,在我的情况下,我一直尝试使用的任何Ubuntu计算机将我的arduino设置为/dev/ttyACM0,所以我将其保留为端口。要找到您的arduino所在的端口,请使用arduino IDE查找它,或者将其插入并在终端中键入“ dmesg | tail”,然后尝试在其中找到路径。现在,如果在打开程序时出现黄色圆圈,则表示它检测到了arduino,但没有足够的权限与之通信,这就是为什么我们必须使用sudo命令将其打开的原因,因此您需要知道管理员密码。

一旦您使程序启动时带有绿色圆圈,就该生成序列了。我尽可能地简化了它,您所要做的就是在要打开灯的位置按住鼠标左键,然后将其拖动到要关闭灯的位置。图片中蓝色的正方形是打开部分所在的位置。要删除蓝色部分之一,只需右键单击它,它就会消失。滚动将水平移动序列以添加更多内容,或者,如果在拖动部分时单击右边缘,它将为您自动滚动。使用Home和End键可以跳到整个序列的开始或结尾。鼠标光标后会出现一个小对话框,告诉您鼠标什么时候指向,但仅在它位于5条音轨之一中时,而不是在顶部菜单部分中。

播放按钮将开始播放曲目,但是如果圆圈不是绿色,则不会写下任何内容。暂停按钮没有任何作用。..。停止按钮将停止播放曲目。保存按钮会将您的序列保存到当前活动目录下的文件中,名称为“ xmaslite.xmas”,但要警告它会覆盖已经存在的xmaslite.xmas文件。打开按钮将打开找到的xmaslite.xmas文件,但如果您尝试打开损坏或错误的xmaslite.xmas文件,它将删除当前序列并打印“错误的xmaslite.xmas文件”。重置按钮只是将序列重置为空,因此您可以重新开始。调试按钮并不是很重要,但是如果您单击它,它将在终端中显示序列,它就在那儿,因为我用它来解决这个怪异的故障,但是如果您也遇到问题,它可能会很有用。

我已经附加了一个测试xmaslite.xmas文件,因此您可以测试该程序,只需将其添加到同一目录中,按打开,您应该会在屏幕上看到一些蓝色方块。

我已经添加了一个xmaslights.ino文件。这是一个arduino文件,如果要arduino执行顺控程序发出的命令,则必须将其上传到arduino。该文件经过编程,可让您的arduino在引脚40、41、42、43、44上输出开/关信号,作为每个通道的5个引脚。

总之,不少于200个2.5天内编写的总代码行数。像往常一样,我允许任何人使用和修改该软件,但是如果要重新分发原始程序,则必须归功于我。

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

全部0条评论

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

×
20
完善资料,
赚取积分