資料介紹
描述
項(xiàng)目制作方法:
第一的:
當(dāng)然是 Arduino。
第二:
你需要一個(gè)揚(yáng)聲器來(lái)插腳 8。
我在項(xiàng)目中使用了玩具中的揚(yáng)聲器。
編碼:
#include "pitches.h" //includes pitches.h file
#include "arrays.h" //includes arrays.h file
#define Speaker1 8
volatile byte Break = false;// if the song should stop or not
void setup() {
pinMode(Speaker1,OUTPUT);// defines port 8
}
void BreakTheSong()// the function used to stop any song
{
Break = true;//force the song to stop
}
void playSong(int song ,unsigned long repeatTimes){
for(int t = 0; t < repeatTimes; t++){
for(int i = starting_and_ending[ song-1 ] ; i < starting_and_ending[ song ] ; i++)// this loop will play notes in the songs
{
tone(Speaker1,tones[i] ,durations[i]); //play a note
delay(delays[i]);// wait for the tone to stop
if(Break == true) //when "Break" is activated, break the song
{Break = false; //stop breaking other songs
break;//stop the current song
}
}
}
}
void playSongForever(int song){
do{
for(int i = starting_and_ending[ song-1 ] ; i < starting_and_ending[ song ] ; i++)// this loop will play note tones[0] to tones[31]
{
tone(Speaker1,tones[i] ,durations[i]); //plays a note
delay(delays[i]);// makes the arduino wait for the tone to stop
if(Break == true)break; //when the interrupt is activated
}
}while(Break == false);
Break = false;
}
void loop() {
playSong(1,1);// play the first song (happy birth day)
//repeated 1 times
playSong(2,1);// play the second song (super mario bros)
// repeated 1 times
}
數(shù)組.h
int starting_and_ending[] {0,25,123};// the number of the first and
final note for each song
volatile int tones[] //the notes for every song (DON'T DELETE AT ALL!)
{
//HappyBirthDay tones:
/*1*/NOTE_D4,/*2*/NOTE_D4,/*3*/NOTE_E4,/*4*/NOTE_D4,/*5*/NOTE_G4,/*6*/NOTE_FS4,/*7*/NOTE_D4,
/*8*/NOTE_D4,/*9*/NOTE_E4,/*10*/NOTE_D4,/*11*/NOTE_A4,/*12*/NOTE_G4,/*13*/NOTE_D4,/*14*/NOTE_D4,/*15*/NOTE_D5,/*16*/NOTE_B4,
/*17*/NOTE_G4,/*18*/NOTE_FS4,/*19*/NOTE_E4,/*20*/NOTE_C5,/*21*/NOTE_C5,/*22*/NOTE_B4,/*23*/NOTE_G4,/*24*/NOTE_A4,/*25*/NOTE_G4,
// super mario bros tones:
/*26*/NOTE_E4,/*27*/NOTE_E4,/*28*/NOTE_E4,/*29*/NOTE_C4,/*30*/NOTE_E4,/*31*/NOTE_G4,/*32*/NOTE_G3,
/*33*/NOTE_C4,/*34*/NOTE_G3,/*35*/NOTE_E3,/*36*/NOTE_A3,/*37*/NOTE_B3,/*38*/NOTE_AS3,/*39*/NOTE_A3,/*40*/NOTE_G3,/*41*/NOTE_E4,
/*42*/NOTE_G4,/*43*/NOTE_A4,/*44*/NOTE_F4,/*45*/NOTE_G4,/*46*/NOTE_E4,/*47*/NOTE_C4,/*48*/NOTE_D4,/*49*/NOTE_B3,/*50*/NOTE_C4,
/*51*/NOTE_G3,/*52*/NOTE_E3,/*53*/NOTE_A3,/*54*/NOTE_B3,/*55*/NOTE_AS3,/*56*/NOTE_A3,/*57*/NOTE_G3,/*58*/NOTE_E4,/*59*/NOTE_G4,
/*60*/NOTE_A4,/*61*/NOTE_F4,/*62*/NOTE_G4,/*63*/NOTE_E4,/*64*/NOTE_C4,/*65*/NOTE_D4,/*66*/NOTE_B3,
/*67*/NOTE_G4,/*68*/NOTE_FS4,/*69*/NOTE_F4,
/*70*/NOTE_D4,/*71*/NOTE_E4,/*72*/NOTE_G3,/*73*/NOTE_A3,/*74*/NOTE_C4,/*75*/NOTE_A3,/*76*/NOTE_C4,
/*77*/NOTE_D4,/*78*/NOTE_G4,/*79*/NOTE_FS4,/*80*/NOTE_F4,/*81*/NOTE_D4,/*82*/NOTE_E4,/*83*/NOTE_C5,/*84*/NOTE_C5,
/*85*/NOTE_C5,
/*86*/NOTE_G4,/*87*/NOTE_FS4,/*88*/NOTE_F4,/*89*/NOTE_D4,/*90*/NOTE_E4,/*91*/NOTE_G3,
/*92*/NOTE_A3,/*93*/NOTE_C4,/*94*/NOTE_A3,/*95*/NOTE_C4,/*96*/NOTE_D4,/*97*/NOTE_DS4,/*98*/NOTE_D4,/*99*/NOTE_C4,
/*100*/NOTE_C4,
/*101*/NOTE_C4,/*102*/NOTE_C4,/*103*/NOTE_C4,/*104*/NOTE_D4,/*105*/NOTE_E4,/*106*/NOTE_C4,/*107*/NOTE_A3,
/*108*/NOTE_G3,/*109*/NOTE_C4,/*110*/NOTE_C4,/*111*/NOTE_C4,/*112*/NOTE_C4,/*113*/NOTE_D4,/*114*/NOTE_E4,/*115*/NOTE_C4,
/*116*/NOTE_C4,
/*117*/NOTE_C4,/*118*/NOTE_C4,/*120*/NOTE_D4,/*121*/NOTE_E4,/*122*/NOTE_C4,
/*123*/NOTE_A3,
};
volatile int delays[] //the delays for every song
// (DON'T DELETE AT ALL!)
{
//HappyBirthDay delays:
/*1*/225,/*2*/200,/*3*/400,/*4*/400,/*5*/400,
/*6*/800,/*7*/225,/*8*/200,/*9*/400,/*10*/400,/*11*/400,/*12*/800,/*13*/225,/*14*/200,/*15*/400,/*16*/400,/*17*/400,/*18*/400,
/*19*/800,/*20*/225,/*21*/200,/*22*/400,/*23*/400,/*24*/400,/*25*/800,
// super mario bros tones:
/*26*/200,/*27*/300,/*28*/300,/*29*/200,/*30*/300,/*31*/600,/*32*/600 ,/*33*/450,/*34*/450,/*35*/450,/*36*/300,/*37*/300,/*38*/200
,/*39*/300,/*40*/200,/*41*/200,/*42*/200,/*43*/300,/*44*/200,/*45*/300,/*46*/300,/*47*/300,/*48*/200,/*49*/300
,/*50*/450,/*51*/450,/*52*/450,/*53*/300,/*54*/300,/*55*/200,/*56*/300,/*57*/200,/*58*/200,/*59*/200,/*60*/300,/*61*/200,/*62*/300
,/*63*/300,/*64*/300,/*65*/200,/*66*/1000,/*67*/200,/*68*/200,/*69*/200,/*70*/300,/*71*/300,/*72*/200,/*73*/200,/*74*/300,/*75*/200,
/*76*/200,/*77*/500,/*78*/200,/*79*/200,/*80*/200,/*81*/300,/*82*/300,/*83*/300,/*84*/200,/*85*/1000,
/*86*/200,/*87*/200,/*88*/200,/*89*/300,/*90*/300,/*91*/200,/*92*/200,/*93*/300,/*94*/200,/*95*/200,/*96*/500,/*97*/500,/*99*/500,
/*99*/1300,
/*100*/200,/*101*/300,/*102*/300,/*103*/200,/*104*/300,/*105*/200,/*106*/300,/*107*/200,
/*108*/700,/*109*/200,/*110*/300,/*111*/300,/*112*/200,/*113*/300,/*114*/1300,/*115*/200,/*116*/300,/*117*/300,
/*118*/200,/*119*/300,/*120*/200,/*121*/300,/*122*/200,/*123*/700
};
volatile int durations[] //the durations for every song
//(DON'T DELETE AT ALL!)
{
//HappyBirthDay durations:
/*2*/200,/*3*/200,/*4*/400,/*5*/400,/*6*/400,/*7*/400,/*8*/200,/*9*/200,/*10*/400,/*11*/400,/*12*/400,/*13*/400,/*14*/200,/*15*/200,
/*16*/400,/*17*/400,/*18*/400,/*19*/400,/*20*/400,/*21*/200,/*22*/200,/*23*/400,/*24*/400,/*25*/400,/*26*/400,
// super mario bros durations:
/*26*/200,/*27*/150,/*28*/150,/*29*/200,/*30*/150,/*31*/200,/*32*/200,/*33*/200,/*34*/200,/*35*/200,/*36*/200,/*37*/200,/*38*/200,
/*39*/200,/*40*/200,/*41*/200,/*42*/200,/*43*/200,/*44*/200,/*45*/200,/*46*/200,/*47*/200,/*48*/200,/*49*/200
,/*50*/200,/*51*/200,/*52*/200,/*53*/200,/*54*/200,/*55*/200,/*56*/200,/*57*/200,/*58*/200,/*59*/200,/*60*/200,/*61*/200,/*62*/200,
/*63*/200,/*64*/200,/*65*/200,/*66*/200
,/*67*/200,/*68*/200,/*69*/200,/*70*/200,/*71*/200,/*72*/200,/*73*/200,/*74*/200,/*75*/200,/*76*/200,/*77*/200,/*78*/200,/*79*/200,
/*80*/200,/*81*/200,/*82*/200,/*83*/200,/*84*/150,/*85*/200,
/*86*/200,/*87*/200,/*88*/200,/*89*/200,/*90*/200,/*91*/200,/*92*/200,/*93*/200,
/*94*/200,/*95*/200,/*96*/200,/*97*/200,/*98*/200,/*99*/200,
/*100*/200,/*101*/200,/*102*/200,/*103*/200,/*104*/200,/*105*/200,/*106*/200,/*107*/200,/*108*/200,/*109*/200,/*110*/200,/*111*/200,
/*112*/200,/*113*/200,/*114*/200,/*115*/200,/*116*/150,/*117*/200,
/*118*/200,/*119*/200,/*120*/200,/*121*/200,/*122*/200,/*123*/200,
};
球場(chǎng).h
pitches.h 在項(xiàng)目的代碼部分。
代碼說(shuō)明:
該代碼在代碼本身中進(jìn)行了解釋
如何播放歌曲:
使用這些功能之一:playSongForever("song's number"):
永遠(yuǎn)播放一首歌。
playSong("song's number"
,
"repeat
times"):
播放帶有服裝重復(fù)編號(hào)的歌曲。
如何創(chuàng)作一首新歌:
-
將歌曲的所有音符添加到
tones[]
array.h中。
-
將歌曲的所有延遲添加到
delays[]
array.h中。
-
將歌曲的所有持續(xù)時(shí)間添加到
durations[]
array.h中。
-
如果新歌中第一個(gè)音符的編號(hào)不包含
starting_and_ending[]
在array.h中,則包括第一個(gè)音符的編號(hào)和(最后一個(gè)音符的編號(hào) + 1),否則只包括(最后一個(gè)音符的編號(hào) + 1)。
-
最后,播放歌曲!使用其中一個(gè)功能:
playSongForever("song's number"):
永遠(yuǎn)播放一首歌。playSong("song's number"
,
"repeat
times"):
播放帶有服裝重復(fù)編號(hào)的歌曲。
- 就是這樣!
?
- 音樂(lè)播放器項(xiàng)目開(kāi)發(fā)實(shí)例 6次下載
- Arduino網(wǎng)絡(luò)廣播播放器
- 使用Arduino播放歌曲
- 使用Arduino無(wú)源蜂鳴器播放任何歌曲
- Arduino之基于網(wǎng)絡(luò)的MP3播放器
- Arduino UNO構(gòu)建音樂(lè)播放器
- 制作帶有蜂鳴器和LCD顯示屏的圣誕歌曲播放器
- Arduino WAV播放器開(kāi)源
- 數(shù)碼播放器的開(kāi)發(fā)案例 6次下載
- 播放器mpd使用指南 19次下載
- 無(wú)線下載音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn) 134次下載
- qq空間播放器代碼下載
- 網(wǎng)頁(yè)視頻播放器代碼
- 網(wǎng)頁(yè)音樂(lè)播放器代碼
- CSF文件播放器
- 數(shù)字播放器和解碼器 149次閱讀
- 車(chē)載播放器怎么選擇格式 1313次閱讀
- ffmpeg開(kāi)發(fā)播放器學(xué)習(xí) 634次閱讀
- 如何利用Arduino UNO和SD卡制作音樂(lè)播放器 7319次閱讀
- 音樂(lè)發(fā)燒友的首選播放器山靈M5s發(fā)布 2147次閱讀
- 微雪電子Arduino 音頻播放擴(kuò)展板簡(jiǎn)介 1862次閱讀
- MP3播放器的基本原理及電路組成 1.9w次閱讀
- 基于車(chē)載播放器的e-Mark輻射騷擾測(cè)試 983次閱讀
- 如何應(yīng)用可編程邏輯器件PLD將高速視頻內(nèi)容連接到視頻播放器 1445次閱讀
- 基于AT89C51SND1C單片機(jī)的MP3播放器的設(shè)計(jì)方案 6464次閱讀
- 基于TQ2440 開(kāi)發(fā)板制作的機(jī)頂盒媒體播放器 2218次閱讀
- C51內(nèi)核單片機(jī)的MP3播放器設(shè)計(jì) 5689次閱讀
- hifi播放器排行榜 3.4w次閱讀
- 新型嵌入式MP3播放器設(shè)計(jì)方案 4917次閱讀
- 基于嵌入式Linux流媒體播放器系統(tǒng)軟硬件解決方案 2740次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多