程序很简单,不多描述。直接上源码。这个程序除了播放声音外,还控制了LED灯的闪烁频率,所以对于初次学习Arduino开发板的朋友来说还是有一定的借鉴意义的。
源代码:
- #define Do 262
- #define Re 294
- #define Mi 330
- #define Fa 349
- #define Sol 392
- #define La 440
- #define Si 494
- #define Do_h 523
- #define Re_h 587
- #define Mi_h 659
- #define Fa_h 698
- #define Sol_h 784
- #define La_h 880
- #define Si_h 988
- int length;
- int scale[]={Sol,Sol,La,Sol,Do_h,Si,
- Sol,Sol,La,Sol,Re_h,Do_h,
- Sol,Sol,Sol_h,Mi_h,Do_h,Si,La,
- Fa_h,Fa_h,Mi_h,Do_h,Re_h,Do_h}; //生日歌曲谱
- float durt[]=
- {
- 0.5,0.5,1,1,1,1+1,
- 0.5,0.5,1,1,1,1+1,
- 0.5,0.5,1,1,1,1,1,
- 0.5,0.5,1,1,1,1+1,
- }; //音长
- int tonepin=8; //用8号引脚
- int ledpin = 13;
- void setup()
- {
- pinMode(tonepin,OUTPUT);
- pinMode(ledpin,OUTPUT);
- length=sizeof(scale)/sizeof(scale[0]); //计算长度
- }
- void loop()
- {
- for(int x=0;x<length;x++)
- {
- tone(tonepin,scale[x]);
- digitalWrite(ledpin,HIGH);
- delay(500*durt[x]); //这里用来根据节拍调节延时,500这个指数可以自己调整
- digitalWrite(ledpin,LOW);
- delay(100*durt[x]);
- noTone(tonepin);
- }
- delay(3000);
- }