资料介绍
描述
项目制作方法:
第一的:
当然是 Arduino。
第二:
你需要一个扬声器来插脚 8。
我在项目中使用了玩具中的扬声器。
编码:
#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
}
数组.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,
};
球场.h
pitches.h 在项目的代码部分。
代码说明:
该代码在代码本身中进行了解释
如何播放歌曲:
使用这些功能之一:playSongForever("song's number"):
永远播放一首歌。
playSong("song's number"
,
"repeat
times"):
播放带有服装重复编号的歌曲。
如何创作一首新歌:
-
将歌曲的所有音符添加到
tones[]
array.h中。
-
将歌曲的所有延迟添加到
delays[]
array.h中。
-
将歌曲的所有持续时间添加到
durations[]
array.h中。
-
如果新歌中第一个音符的编号不包含
starting_and_ending[]
在array.h中,则包括第一个音符的编号和(最后一个音符的编号 + 1),否则只包括(最后一个音符的编号 + 1)。
-
最后,播放歌曲!使用其中一个功能:
playSongForever("song's number"):
永远播放一首歌。playSong("song's number"
,
"repeat
times"):
播放带有服装重复编号的歌曲。
- 就是这样!
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 音乐播放器项目开发实例 6次下载
- Arduino网络广播播放器
- 使用Arduino播放歌曲
- 使用Arduino无源蜂鸣器播放任何歌曲
- Arduino之基于网络的MP3播放器
- Arduino UNO构建音乐播放器
- 制作带有蜂鸣器和LCD显示屏的圣诞歌曲播放器
- Arduino WAV播放器开源
- 数码播放器的开发案例 6次下载
- 播放器mpd使用指南 19次下载
- 无线下载音乐播放器设计与实现 134次下载
- qq空间播放器代码下载
- 网页视频播放器代码
- 网页音乐播放器代码
- CSF文件播放器
- 数字播放器和解码器 149次阅读
- 车载播放器怎么选择格式 1313次阅读
- ffmpeg开发播放器学习 634次阅读
- 如何利用Arduino UNO和SD卡制作音乐播放器 7319次阅读
- 音乐发烧友的首选播放器山灵M5s发布 2147次阅读
- 微雪电子Arduino 音频播放扩展板简介 1862次阅读
- MP3播放器的基本原理及电路组成 1.9w次阅读
- 基于车载播放器的e-Mark辐射骚扰测试 983次阅读
- 如何应用可编程逻辑器件PLD将高速视频内容连接到视频播放器 1445次阅读
- 基于AT89C51SND1C单片机的MP3播放器的设计方案 6464次阅读
- 基于TQ2440 开发板制作的机顶盒媒体播放器 2218次阅读
- C51内核单片机的MP3播放器设计 5689次阅读
- hifi播放器排行榜 3.4w次阅读
- 新型嵌入式MP3播放器设计方案 4917次阅读
- 基于嵌入式Linux流媒体播放器系统软硬件解决方案 2740次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多