Arduino无源蜂鸣器实验

今天晚上波波为大家分享Arduino无源蜂鸣器实验,通过程序让无源蜂鸣器有规则的播放乐曲。其实这个实验比较简单,在网上也能看到很多相关教程,在这里波波仅记录下这次实验的详细步骤以供学习。

Arduino无源蜂鸣器实验

实验材料:

1、Arduino uno R3

2、V5 扩展板一块(不是必须的)

3、无源蜂鸣器1个。

实验步骤:

1、连线:

把无源蜂鸣器上面的VCC、GND、I/O分别接在开发板或扩展板的+5V  、GND、D8上面。

2、写入以下程序:

  1. #define NTC0 -1  
  2. #define NTC1 262  
  3. #define NTC2 294  
  4. #define NTC3 330  
  5. #define NTC4 350  
  6. #define NTC5 393  
  7. #define NTC6 441  
  8. #define NTC7 495  
  9. #define NTCL1 131  
  10. #define NTCL2 147  
  11. #define NTCL3 165  
  12. #define NTCL4 175  
  13. #define NTCL5 196  
  14. #define NTCL6 221  
  15. #define NTCL7 248     
  16. #define NTCH1 525  
  17. #define NTCH2 589  
  18. #define NTCH3 661  
  19. #define NTCH4 700  
  20. #define NTCH5 786  
  21. #define NTCH6 882  
  22. #define NTCH7 990  
  23. //列出全部C调的频率  
  24. #define WHOLE 1  
  25. #define HALF 0.5  
  26. #define QUARTER 0.25  
  27. #define EIGHTH 0.25  
  28. #define SIXTEENTH 0.625  
  29. //列出所有节拍  
  30. int tune[]=                 //根据简谱列出各频率  
  31. {
  32.   NTC5,NTC5,NTC6,
  33.   NTCH1,NTC6,NTC5,NTC6,NTCH1,NTC6,NTC5,
  34.   NTC3,NTC3,NTC3,NTC5,
  35.   NTC6,NTC6,NTC5,NTCH3,NTCH3,NTCH2,NTCH1,
  36.   NTCH2,NTCH1,NTCH2,
  37.   NTCH3,NTCH3,NTCH2,NTCH3,NTCH2,NTCH1,NTCH2,NTCH1,NTC6,
  38.   NTCH2,NTCH2,NTCH2,NTCH1,NTC6,NTC5,
  39.   NTC6,NTC5,NTC5,NTCH1,NTC6,NTC5,NTC1,NTC3,
  40.   NTC2,NTC1,NTC2,
  41.   NTC3,NTC5,NTC5,NTC3,NTCH1,NTC7,
  42.   NTC6,NTC5,NTC6,NTCH1,NTCH2,NTCH3,
  43.   NTCH3,NTCH2,NTCH1,NTC5,NTCH1,NTCH2,NTCH3,
  44.   NTCH2,NTC0,NTCH3,NTCH2,
  45.   NTCH1,NTC0,NTCH2,NTCH1,NTC6,NTC0,
  46.   NTCH2,NTC6,NTCH1,NTCH1,NTCH1,NTC6,NTC5,NTC3,
  47.   NTC5,
  48.   NTC5,NTC6,NTCH1,NTC7,NTC6,
  49.   NTCH3,NTCH3,NTCH3,NTCH3,NTCH2,NTCH2,NTCH1,
  50.   NTC6,NTCH3,NTCH2,NTCH1,NTCH2,NTCH1,NTC6,
  51.   NTCH1,
  52. };
  53. float durt[]=                   //根据简谱列出各节拍  
  54. {
  55. 0.5,0.25,0.25,
  56. 1.5,0.5,0.5,0.25,0.25,0.5,0.5,
  57. 1+1+1,0.5,0.25,0.25,
  58. 1.5,0.5,0.5,0.5,0.25,0.25,0.5,
  59. 1+1+1,0.5,0.5,
  60. 0.5,0.5,0.5,0.25,0.25,0.5,0.25,0.25,0.5,
  61. 0.5,0.5,0.5,0.25,0.25,1+1,
  62. 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,
  63. 1+1+1,0.5,0.5,
  64. 1.5,0.5,0.5,0.5,0.5,0.5,
  65. 1.5,0.5,1,0.5,0.25,0.25,
  66. 1.5,0.5,0.5,0.5,0.5,0.25,0.25,
  67. 1+1+1,0.5,0.25,0.25,
  68. 1,0.5,0.25,0.25,1,1,
  69. 0.5,0.5,0.5,0.5,1,0.25,0.25,0.5,
  70. 1+1+1+1,
  71. 0.5,0.5,0.5,0.5,1+1,
  72. 0.5,0.5,0.5,0.5,1.5,0.25,0.25,
  73. 1.5,0.5,1,0.25,0.25,0.25,0.25,1+1+1+1,
  74. };
  75. int length;
  76. int tonepin=8;   //得用6号接口  
  77. void setup()
  78. {
  79.   pinMode(tonepin,OUTPUT);
  80.   length=sizeof(tune)/sizeof(tune[0]);   //计算长度  
  81. }
  82. void loop()
  83. {
  84.   for(int x=0;x<length;x++)
  85.   {
  86.     tone(tonepin,tune[x]);
  87.     delay(500*durt[x]);   //这里用来根据节拍调节延时,500这个指数可以自己调整,在该音乐中,我发现用500比较合适。  
  88.     noTone(tonepin);
  89.   }
  90.   delay(2000);
  91. }

3、校验后上传到开发板中即可听到蜂鸣器播放的乐曲了。乐谱制作方法将在下一篇博客中进行分享,敬请关注。

你想把广告放到这里吗?

发表评论

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