温馨提示
学校开设了Arduino的课程,老师也发了一整套的学习设备,于是心血来潮结合了以前用c语言beep函数制作音乐播放器的经验,制作了一个十分简单的Arduino版本的音乐播放器。本人菜鸟一个,希望可以帮助刚入门Arduino的小伙伴们提高学习兴趣,老鸟就忽略了吧!
一、实验目的:
结合工具简单的制作一个可以播放音乐的小音箱。
二、实验器具:
一个ArduinoUNO板子,四个杜邦线,一个蜂鸣器,一个面包板,一台电脑
三、实验流程
大家要先学会看简谱或者五线谱,本人就是学不太懂这个所以就找了一个十分简单的两只老虎,但是方法是通用的。关于简谱的学习就靠大家自己想办法了。然后就是 设计电路图(Fritzing),实物连接,编写代码烧录就ok了。
//播放两只老虎
//简单设置音调
#define H1 523
#define H2 587
#define H3 659
#define H4 698
#define H5 784
#define H6 880
#define H7 988
#define yipai 400 //一拍的时间长度
int buzzer = 8;//设置控制蜂鸣器的数字IO脚
//根据简谱得来
int shenying[] = {H1,H2,H3,H1, H1,H2,H3,H1, H3,H4,H5, H3,H4,H5, H5,H6,H5,H4,H3,H1, H5,H6,H5,H4,H3,H1, 0, H2,H5,H1, 0, H2,H5,H1};
int time[] = {1,1,1,1, 1,1,1,1, 1,1,2, 1,1,2, 1,1,1,1,1,1.5, 1,1,1,1,1,1.5, 0.75, 1,1,2, 0.5, 1,1,2};
int lenth;
void setup()
{
pinMode(buzzer, OUTPUT); //设置数字IO脚模式,OUTPUT为输出
lenth = sizeof(shenying) / sizeof(int);//获取数组长度
}
void loop()
{
int i;
for(i = 0; i < lenth; i++)
{
tone(buzzer, shenying[i]); //依次播放数组元素,即每个音符
delay(time[i]*yipai); //每个音符持续的时间
noTone(buzzer);//结束该音频
}
delay(1000);//1s后循环播放
}
四、心得体会
总的来说,当听到蜂鸣器可以播放音乐的时候,还是十分有趣的。只要你可以看得懂你想播放音乐的简谱,再多宏定义几个音调,理论上这个音乐就可以播放出来,大家快来动手实践一下吧!