『壹』 有誰用單片機做過小型音樂噴泉
想做一個小型的音樂噴泉,需要用到電磁閥。用單片機的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程序網上找,一把一把的。