导航:首页 > 操作系统 > 单片机控制的音乐喷泉

单片机控制的音乐喷泉

发布时间:2023-04-02 02:08:30

‘壹’ 有谁用单片机做过小型音乐喷泉

想做一个小型的音乐喷泉,需要用到电磁阀。用单片机的ADC采样音乐信号,根据音乐信号电压高低,可以准确控制电磁阀开闭,实现音乐喷泉效果。用c语言完全可以编程实现,当然汇编语言也可以。

‘贰’ 怎样制作音乐喷泉

国内外音乐喷泉制作流程一般是首先选择要播放的乐曲,计算机人员根据乐曲,利用3D动画制作软件制作乐曲的音乐喷泉水型和灯光变化的水景。为体现音乐情感,需反复调试,直到完全相配为止。

然后控制人员根据3D音乐喷泉动画来编织控制程序,使喷头、变频机、灯光动起来,产生实际的音乐喷泉。再经过反复调试,使之和3D动画仿真显示基本一致。

最后三个系统(乐曲播放、动画显示、控制执行)进行联试,直到三者相互匹配为止。

‘叁’ 如何自制音乐喷泉的原理

自动喷泉的工作原理是怎样的呢?这是利用水和空气的压力原理做成的。
先准备二个大小相同的密封杯(也可用饮料瓶)各装上相等量水(半瓶)。两根胶管和一根粗细不到2毫米玻璃管,一个大水漏斗。
首先漏斗与玻璃管之间要密封,后在漏斗中注水,利用吸虹现象,使水通过橡管进入瓶1,瓶1的水增加体积把瓶内空气压到瓶2,这样瓶2的空气压力增加,压迫瓶壁与水面,迫使瓶2内的水流入玻璃管中,水在压力的作用下从管内喷出,形成喷泉。喷泉中的水落下来,又落在漏斗中,就又开始新的循规,这样,自动喷泉就做成了。
制作注意事项:(1)漏斗内水必须与2号瓶密封。(2)开口在瓶的下部。(3)玻璃管喷水口用火烧细(但不能封闭,管长要大于瓶长)
音乐喷泉的工作原理是,根据播放的音乐来控制水柱,达到与音乐同步的效果,而水柱是由水泵来控制的,而水泵是由三相异步电动机组成的,三相异步电动机的转速如果通入工频电源,转速是不变化的,变频器是专门针对电机调速的装置。由变频器控制电机的转速,使水柱发生变化。
改变频率就改变了电机的转速,也就改变了水泵的压力,音乐的不同频率经单片机处理送到变频电机的控制端,使电机转速随音乐的音调,节奏,和强弱变化,水泵的压力随之变化,喷岀的水就有了高低变化,而且是由几套设备对多组喷嘴实施控制,喷泉的形成是水泵。
将音乐的节奏和强度转变为控制信号,此信号再控制一个电压控制器件,电源经过这个电压控制器件后,输出电压也随音乐的变化而改变,然后控制水泵电机。

音乐表演喷泉是在程序控制喷泉的基础上加入了音乐控制系统,计算机通过对音频及MIDI信号的识别,进行译码和编码,最终将信号输出到控制系统,使喷泉的造型及灯光的变化与音乐保持同步,从而达到喷泉水型、灯光及色彩的变化与音乐情绪的完美结合,使喷泉表演更加生动更加富有内涵。音乐喷泉:可以根据音乐的高低起伏变化。用户可以在编辑界面编写自己喜爱的音乐程序。播放系统可以实现音乐、水、灯光气氛统一,播放同步。

‘肆’ 如何用单片机设计音乐喷泉电路图

单片机就想做音乐喷泉?20年前估计这么做,用PLC做控制,现在还用单片机?莫非真是毕业设计?

现在的音乐喷泉控制系统相当复杂,功能和复杂度能赶上一个电厂的整套控制系统了,大点的音乐喷泉有几千个控制点。

‘伍’ 我想要一段单片机控制音乐喷泉的C语言程序,很急!~谁能帮帮我,谢谢~

#include<reg51.h>
#include "SoundPlay.h"
uchar code table[]="sound_signal:";
uchar code table1[]="sound_pace:";
uchar code table2[]="0123456789 ";
uchar data count=0;
sbit motor=P2^1;
sbit rs=P2^2;
sbit e=P2^3;
void init_com()
{
TMOD=0x01;
TH0=0xff;
TL0=0xff;
EA=1;
ET0=1;
}

void timer0(void) interrupt 1 using 3
{
counter=counter+1;//节拍次数计数
TH0=0xd8; //定义单位节拍的延时大小 10ms定时
TL0=0xef;
}
void delay(uchar n)
{
uchar i;
while(n--)
for(i=0;i<125;i++); //延时1毫秒

}

void sound_delay(uchar n)
{
uchar i;
while(n--)
{
for(i=0;i<2;i++);
}
}

/*******LCD显示*******/
void ling(uchar zl) //写指令
{
rs=0;
e=0;
P0=zl;
delay(5);
e=1;
delay(5);
e=0;
}
void shuju(uchar sj) //写数据
{
rs=1;
e=0;
P0=sj;
delay(5);
e=1;
delay(5);
e=0;
}
void lcdinit() //初始化
{
delay(15);
ling(0x01);
ling(0x38);
delay(5);
ling(0x38);
delay(5);
ling(0x38);
delay(5);
ling(0x0c);
delay(5);
ling(0x06);
delay(5);
ling(0x01);
delay(5);
}
//*****************液晶初始化*********
void main()
{
uint i,a;
uchar sound_signal;//定义音符大小
uchar sound_pace;//定义节拍大小
init_com();
lcdinit();
ling(0x80);
for (i=0;i<13;i++)
shuju(table[i]);
ling(0x80+0x40);
for (i=0;i<11;i++)
shuju(table1[i]);
//array[i]=0x00 代表歌曲演唱完毕
//array[i]=0xff 代表是休止符
while(1)
{
i=0;

/***************************************///////////
while(array[i]!=0x00)
{
//如果是休止符,延时100ms,并终止本次循环,进入下一个循环
if(array[i]==0xff)
{
TR0=0;
i++;
delay(100);
continue;
}
//从表中取得 音符大小
sound_signal=array[i];
i=i+1;
//从表中取得 节拍大小
sound_pace=array[i];
a= sound_pace;
P1=a|(a>>4);
//彩灯的根据节拍闪烁
ling(0x80+13);
if(sound_signal/100==0)
shuju(table2[10]);
else shuju(table2[ sound_signal/100]);
shuju(table2[sound_signal%100/10]);
shuju(table2[sound_signal%10]);
ling(0x80+0x40+11);
if(sound_signal/100==0)
shuju(table2[10]);
else shuju(table2[sound_pace/100]);
shuju(table2[sound_pace%100/10]);
shuju(table2[sound_pace%10]);
motor=0;
delay(40);
TR0=1;
//当节拍数未达到时候,继续循环,产生该音调的声音
while(counter<=sound_pace)
{
motor=1;
sound=~sound;
sound_delay(sound_signal);
}

i++;
counter=0;//节拍计数器置0,进入下一个音调
}
/*************************************************/
delay(10); //歌曲演唱完毕后,延时一段时间
}
}
//*******soundplay.h**********歌曲
#ifndef __SOUNDPLAY_H_REVISION_FIRST__
#define __SOUNDPLAY_H_REVISION_FIRST__
#define uchar unsigned char
#define uint unsigned int
sbit sound=P2^0;
uint counter=0;
uchar code array[]=
{
0x18, 0x30, 0x1C, 0x10,
0x20, 0x40, 0x1C, 0x10,
0x18, 0x10, 0x20, 0x10,
0x1C, 0x10, 0x18, 0x40,
0x1C, 0x20, 0x20, 0x20,
0x1C, 0x20, 0x18, 0x20,
0x20, 0x80, 0xFF, 0x20,
0x30, 0x1C, 0x10, 0x18,
0x20, 0x15, 0x20, 0x1C,
0x20, 0x20, 0x20, 0x26,
0x40, 0x20, 0x20, 0x2B,
0x20, 0x26, 0x20, 0x20,
0x20, 0x30, 0x80, 0xFF,
0x20, 0x20, 0x1C, 0x10,
0x18, 0x10, 0x20, 0x20,
0x26, 0x20, 0x2B, 0x20,
0x30, 0x20, 0x2B, 0x40,
0x20, 0x20, 0x1C, 0x10,
0x18, 0x10, 0x20, 0x20,
0x26, 0x20, 0x2B, 0x20,
0x30, 0x20, 0x2B, 0x40,
0x20, 0x30, 0x1C, 0x10,
0x18, 0x20, 0x15, 0x20,
0x1C, 0x20, 0x20, 0x20,
0x26, 0x40, 0x20, 0x20,
0x2B, 0x20, 0x26, 0x20,
0x20, 0x20, 0x30, 0x80,
0x20, 0x30, 0x1C, 0x10,
0x20, 0x10, 0x1C, 0x10,
0x20, 0x20, 0x26, 0x20,
0x2B, 0x20, 0x30, 0x20,
0x2B, 0x40, 0x20, 0x15,
0x1F, 0x05, 0x20, 0x10,
0x1C, 0x10, 0x20, 0x20,
0x26, 0x20, 0x2B, 0x20,
0x30, 0x20, 0x2B, 0x40,
0x20, 0x30, 0x1C, 0x10,
0x18, 0x20, 0x15, 0x20,
0x1C, 0x20, 0x20, 0x20,
0x26, 0x40, 0x20, 0x20,
0x2B, 0x20, 0x26, 0x20,
0x20, 0x20, 0x30, 0x30,
0x20, 0x30, 0x1C, 0x10,
0x18, 0x40, 0x1C, 0x20,
0x20, 0x20, 0x26, 0x40,
0x13, 0x60, 0x18, 0x20,
0x15, 0x40, 0x13, 0x40,
0x18, 0x80, 0x00
};

‘陆’ 请问用单片机做音乐喷泉的小模型需要哪些材料呢

首先需要个喷泉模型聚乙烯熟料透明的。然后准备个三原色LED灯(最好贴片的),加个蓝牙模块,准备个蓝牙音箱,根据设备数量选择合适引脚单片机。
装载,用块万能板将灯,蓝牙模块,单片机什么的都焊上去。然后将喷泉模型用塑料胶固定在灯上。
连上PC开始调试,先写灯模块,再写蓝牙模块,将音频转成2进账写入代码。
这样基本上可以循环放一首歌了。

‘柒’ 51单片机的音乐喷泉的编码

功能实现通过ADC0832芯片对音频信号的采集,转换为数字信号给单片机,然后PWM脉冲宽度调制控制水泵水柱对的高低

//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的

// 1 1 0 通道

// 1 1 1 通道

unsigned char ad0832read(bit SGL,bit ODD)

{undefined

unsigned char i=0,value=0,value1=0;

SCL=0;

DO=1;

CS=0;//开始

SCL=1;//第一个上升沿

SCL=0;

DO=SGL;

SCL=1; //第二个上升沿

SCL=0;

DO=ODD;

SCL=1; //第三个上升沿

SCL=0; //第三个下降沿

DO=1;

for(i=0;i<8;i++)

{undefined

SCL=1;

SCL=0; //开始从第四个下降沿接收数据

value<<=1;

if(DO)

value++;

}

for(i=0;i<8;i++)

{//接收校验数据

value1>>=1;

if(DO)

value1+=0x80;

SCL=1;

SCL=0;

}

CS=1;

DO=1;

SCL=1;

if(value==value1)//与校验数据比较,正确就返回数据,否则返回0

return value;

return 0;

}

void penquan() //PWM调压

{undefined

date=ad0832read(1,0); //读取ad值

h1=(255-date);//转换

out=0; //水泵清零

delay(h1);

if(h1>70) led1=1; else led1=0; //ad值对比 点亮相应的灯

if(h1>80) led2=1; else led2=0; //ad值对比 点亮相应的灯

if(h1>90) led3=1; else led3=0; //ad值对比 点亮相应的灯

if(h1>100) led4=1; else led4=0; //ad值对比 点亮相应的灯

if(h1>110) led5=1; else led5=0; //ad值对比 点亮相应的灯

if(h1>115) led6=1; else led6=0; //ad值对比 点亮相应的灯

if(h1>120) led7=1; else led7=0; //ad值对比 点亮相应的灯

if(h1>130) led8=1; else led8=0; //ad值对比 点亮相应的灯

out=1; //关闭水泵

delay(date); //延时时间

}

void main()//主函数

{undefined

while(1)

{undefined

penquan(); //给定个延时次数

}

}
(转载于CSDN)

‘捌’ 电脑的喷泉音响是通过什么来使水喷出来(工作原理)

1、电脑喷泉音响的工作原理:改变频率就改变尺腊了电机的转速,也就改变了水泵的压力,音帆拆乐的不同频率经单片机处理送到变频电机的控制端,使电机转速随音乐的音调,节奏,和强弱变化,水泵的压力随之变化,喷岀的水就有了高低变化,而且是由几套设备对多组喷嘴实施控制喷泉的形成是水泵。将音乐的节奏和强度转变为控制信号,此信号再控制一个电压控制器件,电源经过这个电压控制器件后,输出电压也随音乐的变化而改变,然后控制水泵电机。
2、音乐喷泉控制系统:软件利用音乐文件的物理波形,将其分为若干乐段,精度达十毫秒,并且自动识别震撼态困枣、思念、抒情、喜悦、激昂、悲哀、欢快、热烈等乐曲的基本情感特征,转换为控制信号,经过同步处理后通过信号输出卡输出到外围具体控制单元,即根据水型组态规则控制潜水泵、电磁阀、水下彩灯和变频器等执行机构,将视觉感受与听觉感受融为一体。

‘玖’ 音乐喷泉的原理是什么

音乐喷泉的工作原理是,根据播放的音乐来控制水柱,达到与音乐同步的效果,而水柱是由水泵来控制的,而水泵是由三相异步电动机组成的,三相异步电动机的转速如果通入工频电源,转速是不变化的,变频器是专门针对电机调速的装置。由变频器控制电机的转速,使水柱发生变化。

改变频率就改变了电机的转速,也就改变了水泵的压力,音乐的不同频率经单片机处理送到变频电机的控制端,使电机转速随音乐的音调,节奏,和强弱变化,水芹数泵的压力随之变化,喷岀的水就有了高低变化。

最高喷泉

2007年8月1日19时58分,在通化市浑江江面上,100米高的水柱喷涌而起,蔚为大观。据了解,这是东北三省喷涌最高的音乐喷泉,同时也是通化浑江沿江景观带建设工程的嫌含首组成部分之一。在当晚工程的竣工仪式上,为其剪彩的不是主要领导,而是市民代表。

据介绍,这是东北三老乎省目前喷涌最高的音乐喷泉,总投资高达2000多万元。同时它也作为通化浑江沿江景观带建设工程的内容之一,成为通化市一道新的风景线。

以上内容参考:网络-音乐喷泉

‘拾’ 单片机实现音乐喷泉的过程中如何对音频进行分频处理

用AD芯片对音频采样,采样速度至少40KHZ,然后做FFT,精度你随便,估计有个256点就可以了。一来你是51,跑不快,二来音乐喷泉水柱不多,从低频到高频大概体现7、8个频点就够了。FFT程序网上找,一把一把的。

阅读全文

与单片机控制的音乐喷泉相关的资料

热点内容
文件夹u盘锁 浏览:312
家佳源电影票 浏览:757
人间中不用解压 浏览:704
哪些网站可以免费看会员 浏览:309
python函数提示 浏览:524
cmd跟踪命令 浏览:266
电影下载免费网站推荐 浏览:364
泰国永恒无删减版 浏览:42
我的世界服务器如何更改地皮地形 浏览:505
山西联通app是什么软件 浏览:355
更新电视剧最快的网站 浏览:134
兄弟训诫文严厉 浏览:608
李楠程序员 浏览:288
山推管家app怎么改密码 浏览:682
贷款结束什么时候解压 浏览:142
18命令方块代码 浏览:938
安卓手机视频怎么传到mac电脑上 浏览:932
马缨花app是什么 浏览:6
python金融分析招聘 浏览:62
可以直接写电影就有免费 浏览:110