資料介紹
描述
項(xiàng)目制作方法:
第一的:
當(dāng)然是 Arduino。
第二:
你需要一個(gè)揚(yáng)聲器來插腳 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)目的代碼部分。
代碼說明:
該代碼在代碼本身中進(jìn)行了解釋
如何播放歌曲:
使用這些功能之一:playSongForever("song's number"):
永遠(yuǎn)播放一首歌。
playSong("song's number","repeattimes"):播放帶有服裝重復(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","repeattimes"):播放帶有服裝重復(fù)編號(hào)的歌曲。
- 就是這樣!
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 音樂播放器項(xiàng)目開發(fā)實(shí)例 8次下載
- Arduino網(wǎng)絡(luò)廣播播放器
- 使用Arduino播放歌曲
- 使用Arduino無源蜂鳴器播放任何歌曲
- Arduino之基于網(wǎng)絡(luò)的MP3播放器
- Arduino UNO構(gòu)建音樂播放器
- 制作帶有蜂鳴器和LCD顯示屏的圣誕歌曲播放器
- Arduino WAV播放器開源
- 數(shù)碼播放器的開發(fā)案例 6次下載
- 播放器mpd使用指南 19次下載
- 無線下載音樂播放器設(shè)計(jì)與實(shí)現(xiàn) 135次下載
- qq空間播放器代碼下載
- 網(wǎng)頁視頻播放器代碼
- 網(wǎng)頁音樂播放器代碼
- CSF文件播放器
- 變速播放器1和2的區(qū)別 1.1k次閱讀
- 為什么好的播放器還要配解碼器 4.9k次閱讀
- 數(shù)字播放器和解碼器 3.9k次閱讀
- 車載播放器怎么選擇格式 3.8k次閱讀
- ffmpeg開發(fā)播放器學(xué)習(xí) 1.3k次閱讀
- 如何利用Arduino UNO和SD卡制作音樂播放器 1w次閱讀
- 音樂發(fā)燒友的首選播放器山靈M5s發(fā)布 2.7k次閱讀
- 微雪電子Arduino 音頻播放擴(kuò)展板簡(jiǎn)介 3k次閱讀
- MP3播放器的基本原理及電路組成 2.2w次閱讀
- 基于車載播放器的e-Mark輻射騷擾測(cè)試 1.4k次閱讀
- 如何應(yīng)用可編程邏輯器件PLD將高速視頻內(nèi)容連接到視頻播放器 1.9k次閱讀
- 基于AT89C51SND1C單片機(jī)的MP3播放器的設(shè)計(jì)方案 7.5k次閱讀
- hifi播放器排行榜 3.6w次閱讀
- 新型嵌入式MP3播放器設(shè)計(jì)方案 5.4k次閱讀
- 基于嵌入式Linux流媒體播放器系統(tǒng)軟硬件解決方案 3.2k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊(cè)
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論