Arduino无源蜂鸣器实验:祝你生日快乐

程序很简单,不多描述。直接上源码。这个程序除了播放声音外,还控制了LED灯的闪烁频率,所以对于初次学习Arduino开发板的朋友来说还是有一定的借鉴意义的。

源代码:

  1. #define Do 262  
  2. #define Re 294  
  3. #define Mi 330  
  4. #define Fa 349  
  5. #define Sol 392  
  6. #define La 440  
  7. #define Si 494  
  8. #define Do_h 523  
  9. #define Re_h 587  
  10. #define Mi_h 659  
  11. #define Fa_h 698  
  12. #define Sol_h 784  
  13. #define La_h 880  
  14. #define Si_h 988
  15. int length;
  16. int scale[]={Sol,Sol,La,Sol,Do_h,Si,
  17.              Sol,Sol,La,Sol,Re_h,Do_h,
  18.              Sol,Sol,Sol_h,Mi_h,Do_h,Si,La,
  19.              Fa_h,Fa_h,Mi_h,Do_h,Re_h,Do_h};        //生日歌曲谱
  20. float durt[]=
  21. {
  22.   0.5,0.5,1,1,1,1+1,
  23.   0.5,0.5,1,1,1,1+1,
  24.    0.5,0.5,1,1,1,1,1,
  25.     0.5,0.5,1,1,1,1+1,
  26. };                                                        //音长
  27. int tonepin=8;   //用8号引脚
  28. int ledpin = 13;
  29. void setup()
  30. {
  31.   pinMode(tonepin,OUTPUT);
  32.   pinMode(ledpin,OUTPUT);
  33.   length=sizeof(scale)/sizeof(scale[0]);   //计算长度
  34. }
  35. void loop()
  36. {
  37.   for(int x=0;x<length;x++)
  38.   {
  39.     tone(tonepin,scale[x]);
  40.     digitalWrite(ledpin,HIGH);
  41.     delay(500*durt[x]);   //这里用来根据节拍调节延时,500这个指数可以自己调整
  42.     digitalWrite(ledpin,LOW);
  43.     delay(100*durt[x]);
  44.     noTone(tonepin);
  45.   }
  46.   delay(3000);
  47. }
你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!