基于计算机控制的音乐圣诞灯的制作

电子说

1.2w人已加入

描述

第1步:零件和材料

Arduino

如果您是一位精通技术的人,可以使用焊接设备并具有电路的基本知识,那么您会发现这个项目容易实现。另一方面,如果您一生中从未做过任何电气工作,建议您上Google并学习如何焊接或联系电子专家。该Instrutable确实利用了高压电流,因此,在使用此类设备时,建议您格外小心。 *对于此项目可能造成的任何损害或伤害,我不承担任何责任。*

现在我们知道了,继续前进。以下是您需要的零件和材料清单:

-Arduino Duemilanove

- USB电缆

- Windows电脑(最好是笔记本电脑)

-6继电器;额定电压为5v-各种LED-220-OHM LED电阻器-焊接的PCB

》 6个三管齐下的女性商店

- 一个三管齐下的男性商店

- 塑料盒外壳

-胶合板

-热胶和热胶棒

-6普通黑色1N4004二极管

-焊锡和烙铁(已保存)

- 绕线

步骤2:LED指示灯

Arduino

首先将LED指示灯焊接到PCB板上将它们与我们将要构建的6个通道相关联。

您将需要6个LED来检查您的通道,看它们是否有效。

1。首先,抓住6根红线和1根黑线。从6根线和1根黑线开始连续焊接它们。

2。 6条红色导线连接到LED的正极。

3。焊接LED另一端的6个电阻。

4。将黑色电缆焊接到电阻器的两端。

检查下图中的工作情况。确保没有任何草率连接或短路问题。

步骤3:测试LED

Arduino

Arduino

如果您急于测试LED以确定连接是否成功,可以通过将引脚线连接到Arduino来实现。如果您希望在继续连接继电器之前测试LED,请按照下图进行操作。

将6个引脚插入Arduino以及地线。

将Arduino连接到计算机并打开Arduino Sketch板软件。

如果一切顺利,则应该看到所有的LED都亮了。

int tree1 = 13;

int tree2 = 12;

int tree3 = 11;

int tree4 = 10;

int tree5 = 9;

int tree6 = 8;

void setup(){

pinMode(tree1,OUTPUT);

pinMode(tree2,OUTPUT );

pinMode(tree3,OUTPUT);

pinMode(tree4,OUTPUT);

pinMode(tree5,OUTPUT);

pinMode(tree6,OUTPUT);

}

void loop(){

digitalWrite(tree1,HIGH);

digitalWrite(tree2,HIGH);

digitalWrite(tree3,HIGH);

digitalWrite(tree4,HIGH);

digitalWrite(tree5 ,HIGH);

digitalWrite(tree6,HIGH);

}

步骤4:连接继电器

Arduino

如果您只是尝试了步骤3,请断开Arduino与计算机的连接,并断开与Arduino的所有电线。

为避免损坏Arduino和项目的其他部分,请尝试使用电气胶带隔离开路导线。

我们现在要将继电器焊接到电路板的每个通道。这样做时请小心。为这些连接供电时,它们具有高压危险。花一分钟时间看一下继电器的引脚。

在焊接时请仔细观察该图,因为您的继电器可能与所示的有所不同。

步骤5:在包装盒中!

Arduino

一旦您的继电器全部焊接完毕,就可以将其放入包装箱中了。在做任何事情之前,请确保您没有焊接错误。将PCB板的4个角热粘合到小块胶合板上。将胶合板直接热胶在塑料盒上。

对Arduino进行相同操作。除此之外,我建议您使用螺钉将Arduino固定到一块胶合板上,然后将其热胶粘到塑料盒外壳上。将电线从PCB连接到Arduino。

(唯一的“自由悬挂”电线应该是连接到继电器的“高压”电线。)

步骤6:打包和处理

这是您创造奇迹之前的重要步骤。首先,将所有继电器线连接到每个引脚。将地面连接到您的主电源。换句话说,用电线做一个简单的电路。假装“公三管插头”是您的电源,6“母延长线”是您的“负载”(或灯泡),“开关”是继电器。确保每个继电器连接到单负荷。如果您需要帮助,可以查看下面的图表。

需要注意的一些事项:确保用于连接电路的电线可以承受120v电压。最好检查规格。确保用电工胶带彻底包裹所有电线。在塑料盒上戳孔,并确保电源线伸出。热粘合您可能存在的任何缝隙。

步骤7:包装

一旦所有连接都牢固且安全一切都被录制下来了,该开始表演了!您将需要在室内设置“控制箱”。 (因为您不希望任何人弄乱它)

我建议您将盒子放在车库门旁边的车库中。将主电源插入交流电源插座。

像往常一样放房子的圣诞灯,但是将所有电线插入“控制器”而不是电源插座。

如图所示这是我的整理设计。 (我放了一个音符,说“高压”,让我的家人知道内部电压)。

步骤8:歌曲和准备工作

当然,如果没有音乐,什么是计算机控制的音乐灯?将所有喜欢的MP3歌曲下载到计算机。只要您可以在扬声器上大声播放,就可以了。

好的设置是将笔记本电脑带到车库,将USB连接到Arduino,然后插入一些扬声器。如果您的笔记本电脑上有WiFi连接,您可以在Youtube上搜索Mannheim Steamroller等歌曲“Carol of the Bells - David Foster”,“Deck the Halls”或“God Rest Ye Merry Gentlemen”。 br》最后,对于编程,我们将需要某种设置来运行电灯。您有两个选项:

-选项A:您可以使用计算机键盘手动控制灯光。

-选项B:您可以使用宏录制器手动设置灯光并自动播放。

无论哪种方式,您将需要在计算机上运行以下两个程序才能与Arduino通信:

高科技圣诞节1.0版(我自己控制灯光的程序)

Arduino Sketchpad (Arduino的默认编程软件)

请确保您同时拥有上述两个程序。如果没有,请下载它们,解压缩内容并立即运行!

拥有程序后,打开Arduino Sketchpad程序并将该代码上载到Arduino:

int tree1 = 13; int tree2 = 12; int tree3 = 11; int tree4 = 10; int tree5 = 9; int tree6 = 8; intintentByte;//一个将传入的串行数据读入

void setup(){

//初始化串行通信的变量:

Serial.begin(9600);

//将LED引脚初始化为输出:

pinMode(tree1,OUTPUT);

pinMode(tree2,OUTPUT);

pinMode(tree3,OUTPUT);

pinMode(tree4,OUTPUT);

pinMode(tree5,OUTPUT);

pinMode(tree6,OUTPUT);

}

void loop(){

//查看是否有传入的串行数据:

if(Serial.available()》 0){

//读取串行缓冲区中最旧的字节:

incomingByte = Serial.read();

if(incomingByte ==‘q’){

digitalWrite(tree1,HIGH);

延迟(150);

digitalWrite(tree1,LOW);

}

if(incomingByte ==‘w’){

digitalWrite(tree2,HIGH);

delay(150);

digitalWrite(tree2,LOW);

}

if(incomingByte ==‘e’){

digitalWrite(tree3,HIGH);

delay(150);

digitalWrite(tree3,LOW);

}

如果(incomingByte ==‘r’){

digitalWrite(tree4,HIGH);

delay(150);

digitalWrite( tree4,LOW);

}

if(incomi ngByte ==‘t’){

digitalWrite(tree5,HIGH);

delay(150);

digitalWrite(tree5,LOW);

}

if(incomingByte = =‘y’){

digitalWrite(tree6,HIGH);

delay(150);

digitalWrite(tree6,LOW);

}

if(incomingByte ==‘ s’){

digitalWrite(tree1,HIGH);

digitalWrite(tree2,HIGH);

delay(150);

digitalWrite(tree1,LOW);

digitalWrite(tree2,LOW );

}

if(incomingByte ==‘d’){

digitalWrite(tree2,HIGH);

digitalWrite(tree3,HIGH);

delay(150);

digitalWrite(tree2,LOW);

digitalWrite(tree3,LOW);

}

if(incomingByte ==‘f’){

digitalWrite(tree3,HIGH);

digitalWrite(tree4,HIGH);

延迟(150);

digitalWrite(tree3,LOW);

digitalWrite(tree4,LOW);

}

if(incomingByte == ‘g’){

digitalWrite(tree4,HIGH);

digitalWrite(tree5,HIGH);

delay(150);

digitalWrite(tree4,LOW);

digitalWrite(tree5, LOW);

}

如果(incomingByte ==‘h’){

digitalWrite(tree5,HIGH);

digitalWrite(tree6,HI GH);

延迟(150);

digitalWrite(tree5,LOW);

digitalWrite(tree6,LOW);

}

if(incomingByte ==‘u’) {

digitalWrite(tree1,HIGH);

digitalWrite(tree2,HIGH);

digitalWrite(tree5,HIGH);

digitalWrite(tree6,HIGH);

delay(150);

digitalWrite(tree1,LOW);

digitalWrite(tree2,LOW);

digitalWrite(tree5,LOW);

digitalWrite(tree6,LOW);

}

如果(incomingByte ==‘i’){

digitalWrite(tree1,HIGH);

digitalWrite(tree2,HIGH);

digitalWrite(tree4,HIGH);

digitalWrite(tree5,HIGH);

delay(150);

digitalWrite(tree1,LOW);

digitalWrite(tree2,LOW);

digitalWrite(tree4,LOW);

digitalWrite(tree5,LOW);

}

if(incomingByte ==‘j’){

digitalWrite(tree2,HIGH);

digitalWrite(tree3,HIGH);

digitalWrite(tree5,HIGH);

digitalWrite(tree6,HIGH);

delay(150);

digitalWrite(tree2,LOW);

digitalWrite(tree3,LOW);

digitalWrite(tree5,LOW);

digitalWrite( tree6,LOW);

}

if(incomingByte ==‘o’){ digitalWrite(tree5,HIGH);

digitalWrite(tree3,HIGH);

digitalWrite(tree4,HIGH);

delay(150);

digitalWrite(tree5,LOW);

digitalWrite(tree3,LOW);

digitalWrite(tree4,LOW);

}

if(incomingByte ==‘p’){

digitalWrite(tree2,HIGH);

digitalWrite(tree3,HIGH);

digitalWrite(tree4,HIGH);

delay(150);

digitalWrite(tree2,LOW);

digitalWrite(tree3,LOW);

digitalWrite( tree4,LOW);

}

如果(incomingByte ==‘b’){

digitalWrite(tree1,HIGH);

digitalWrite(tree6,HIGH);

delay( 150);

digitalWrite(tree1,LOW);

digitalWrite(tree6,LOW);

}

if(incomingByte ==‘c’){

digitalWrite(tree1, HIGH);

digitalWrite(tree3,HIGH);

delay(150);

digitalWrite(tree1,LOW);

digitalWrite(tree3,LOW);

}

如果( incomingByte ==‘v’){

digitalWrite(tree4,HIGH);

digitalWrite(tree6,HIGH);

delay(150);

digitalWrite(tree4,LOW);

digitalWrite (tree6,LOW);

}

如果(incomingByte ==‘a’){

digitalWrite (tree1,HIGH);

digitalWrite(tree2,HIGH);

digitalWrite(tree3,HIGH);

digitalWrite(tree4,HIGH);

digitalWrite(tree5,HIGH);

digitalWrite (tree6,HIGH);

delay(150);

digitalWrite(tree1,LOW);

digitalWrite(tree2,LOW);

digitalWrite(tree3,LOW);

digitalWrite(tree4 ,LOW);

digitalWrite(tree5,LOW);

digitalWrite(tree6,LOW);

}

}

}

第9步:显示时间!

showtime之前的步骤:

1。将代码上传到Arduino之后,通过USB将Arduino连接到计算机。

2。调高音量和扬声器。打开您要播放的歌曲。

3。启动继电器(主交流电源)。

4。打开名为高科技圣诞节1.0

5的程序。选择“ Arduino的串行端口”。 (如果您不知道端口是什么,请继续选择其他端口,直到您正确为止)

6。点击音乐上的“播放”。

开始按某些键!继续!

下面,我为键盘附上了一张图片,其中的选项卡可控制哪些继电器(指示灯)。

步骤10:自动化和其他构想

如果您是一个懒人,或者只是不喜欢一直控制灯光,则可以下载另一个程序来记录您键入的内容键盘并播放。

这称为“宏程序”。您可以获得类似 Blue Eye Macro 或 Avis Macro 之类的优质程序。

然后,在录制宏后,寻找“循环播放歌曲和宏,以便它们重复播放。

我还没有真正了解它,但是今年圣诞节我在使用Blue Eye Macro时没有任何问题。

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

全部0条评论

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

×
20
完善资料,
赚取积分