乐谱转化为播放程序的基本方法
我们先来回顾一下七音依次播放的教程,通过设置频率和持续时长来控制蜂鸣器的播放。
//定义音阶常量
#define Do 262
#define Re 294
#define Mi 330
#define Fa 349
#define Sol 392
#define La 440
#define Si 494
int buzzerPin=8; //定义蜂鸣器针脚
int scale[]={Do,Re,Mi,Fa,Sol,La,Si}; //定义音阶数组
void setup() {
pinMode(buzzerPin,OUTPUT);// 设置数字引脚为输出
}
void loop() {
for(int i=0;i<7;i++){// 使用for循环依次播放音阶数组中的元素
tone(buzzerPin,scale[i],1000);//依次读取音阶数组中的音阶频率,并且每个音阶持续1秒钟
delay(1000); //等待1000毫秒
noTone(buzzerPin); //停止发声
delay(1000); //等待1000毫秒
}
}
既然我们知道了控制音阶播放的原理,那我们是不是可以尝试用这种原理去进行作曲呢?
//定义音阶常量
#define Do 262
#define Re 294
#define Mi 330
#define Fa 349
#define Sol 392
#define La 440</