你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【更好用的单片机】【Stduino】Stduino学习(十八)无源蜂鸣...

[复制链接]
stduino 发布时间:2020-8-6 20:04
37种传感器(十八)无源蜂鸣器模块+Stduino Nano&UNO


关键词:
51、stm32、arduino、stduino单片机、stduino UNO&Nano、无源蜂鸣器模块

说明:
我们已经在第十六讲介绍过有源蜂鸣器,因此这里只介绍无源蜂鸣器。
18-无源蜂鸣器展示图.png

无源蜂鸣器没有震荡源,因此需要通过脉宽调制(PWM)输入特定的方波电压信号来发声。PWM原理可在其他教程中查找,本系列主要介绍传感器。
演奏一首音乐,最重要的每个音的音调(频率)和节拍(时长)。
C调音符对应的音调频率如下图:(每两个音调频率相差

无源蜂鸣器表格.png

我们可以通过tone(pin,frequnce)函数来控制无源蜂鸣器的振动频率,利用delay()来控制节拍,利用noTone(pin)来终止振动



实验目的:
控制无源蜂鸣器演奏《天空之城》。天空之城是C调,一拍为四分之一音符长度,每一小节为四拍。
黑点在上为高音,在下为低音,没有为中音乐。而每两个竖杠之间为一小节,每一小节共有四个四分之一拍。下面如果画了一条横线,则是四分之一拍的二分之一,即八分之一拍;画了两条横线,则是四分之一的四分之一,即十六分之一拍。音符后面的横线则是前一音符的延续。
18-无源蜂鸣器简谱.png


器材:
Stduino UNO/Nano;杜邦线;无源蜂鸣器模块


电路连接:
18-无源蜂鸣器电路图.png


代码展示:
  1. <font face="Arial" size="2">#define C0 (2)

  2. #define C1_LOW  (262)
  3. #define C2_LOW  (294)
  4. #define C3_LOW  (330)
  5. #define C4_LOW  (349)
  6. #define C5_LOW  (392)
  7. #define C6_LOW  (440)
  8. #define C7_LOW  (494)

  9. #define C1      (523)
  10. #define C2      (587)
  11. #define C3      (659)
  12. #define C4      (698)
  13. #define C4S     (740)//C4#
  14. #define C5      (784)
  15. #define C5S     (831)//C5#
  16. #define C6      (880)
  17. #define C7      (988)

  18. #define C1_HIGH (1046)
  19. #define C2_HIGH (1175)
  20. #define C3_HIGH (1318)
  21. #define C4_HIGH (1397)
  22. #define C5_HIGH (1568)
  23. #define C6_HIGH (1760)
  24. #define C7_HIGH (1976)

  25. #define WHOLE (1)
  26. #define HALF (0.5)
  27. #define QUARTER (0.25)
  28. #define EIGHTH (0.125)
  29. #define SIXTEENTH (0.0625)

  30. int tune[]=                 //根据简谱列出各频率
  31. {
  32.     C6,C7,
  33.    
  34.     C1_HIGH,C7,C1_HIGH,C3_HIGH,//
  35.     C7,C3,C3,
  36.     C6,C5,C6,C1_HIGH,
  37.     C5,C0,C3,C3,
  38.     C4,C3,C4,C1_HIGH,
  39.     C3,C0,C1_HIGH,C1_HIGH,C1_HIGH,
  40.     C7,C4S,C4S,C7,
  41.    
  42.     C7,C0,C6,C7,//
  43.     C1_HIGH,C7,C1_HIGH,C3_HIGH,
  44.     C7,C0,C3,C3,
  45.     C6,C5,C6,C1_HIGH,
  46.     C5,C0,C3,
  47.     C4,C1_HIGH,C7,C7,C1_HIGH,
  48.     C2_HIGH,C2_HIGH,C3_HIGH,C1_HIGH,C0,
  49.    
  50.     C1_HIGH,C7,C6,C6,C7,C5S,//
  51.     C6,C0,C1_HIGH,C2_HIGH,
  52.     C3_HIGH,C2_HIGH,C3_HIGH,C5_HIGH,
  53.     C2_HIGH,C0,C5,C5,
  54.     C1_HIGH,C7,C1_HIGH,C3_HIGH,C0,C0,
  55.     C6,C7,C1_HIGH,C7,C2_HIGH,C2_HIGH,
  56.     C1,C5,C5,C0,
  57.    
  58.     C4_HIGH,C3_HIGH,C2_HIGH,C1_HIGH,//
  59.     C3_HIGH,
  60.     C3_HIGH,C0,C3_HIGH,
  61.     C6_HIGH,C5_HIGH,C5_HIGH,
  62.     C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,
  63.     C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C5_HIGH,
  64.     C3_HIGH,C0,C3_HIGH,
  65.     C6_HIGH,C5_HIGH,
  66.     C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,
  67.     C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C7,

  68.     C6,C0,C6,C7,
  69.    
  70.     C6
  71. };
  72. float durt[]=                   //根据简谱列出各节拍
  73. {
  74.     EIGHTH,EIGHTH,
  75.    
  76.     QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,
  77.     QUARTER + QUARTER + QUARTER,EIGHTH,EIGHTH,
  78.     QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,
  79.     QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,
  80.     QUARTER + EIGHTH,EIGHTH,EIGHTH,QUARTER+EIGHTH,
  81.     QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,EIGHTH,
  82.     QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,
  83.    
  84.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
  85.     QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
  86.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
  87.     QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
  88.     QUARTER+QUARTER+QUARTER,EIGHTH,EIGHTH,
  89.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,
  90.     EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,
  91.    
  92.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,
  93.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
  94.     QUARTER+EIGHTH,QUARTER,QUARTER,QUARTER,
  95.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
  96.     EIGHTH,EIGHTH,QUARTER,QUARTER,
  97.     QUARTER+QUARTER,QUARTER,QUARTER,
  98.     EIGHTH,EIGHTH,QUARTER,QUARTER,EIGHTH,EIGHTH,
  99.     QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
  100.    
  101.     QUARTER,QUARTER,QUARTER,QUARTER,
  102.     QUARTER+QUARTER+QUARTER,
  103.     QUARTER+QUARTER,QUARTER,QUARTER,
  104.     QUARTER+QUARTER,QUARTER,QUARTER,
  105.     EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,
  106.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,
  107.     QUARTER+QUARTER,QUARTER,QUARTER,
  108.     QUARTER+QUARTER,QUARTER+QUARTER,
  109.     EIGHTH,EIGHTH,QUARTER+QUARTER,EIGHTH,EIGHTH,
  110.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,
  111.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
  112.    
  113.     QUARTER+QUARTER+QUARTER
  114.    
  115. };

  116. int Time = 2000;
  117. int BUZZER = A0;

  118. int length;

  119. void setup()
  120. {
  121.   // put your setup code here, to run once:

  122.     length=sizeof(tune)/sizeof(tune[0]);   //计算长度
  123. }

  124. void loop()
  125. {
  126.   // put your main code here, to run repeatedly:
  127.     for(int i=0;i<length;i++)
  128.     {
  129.         if(tune[i]!=0)
  130.         {
  131.             tone(BUZZER,tune[i]);
  132.         }  
  133.         else
  134.         {
  135.             noTone(BUZZER);
  136.         }
  137.         delay(Time*durt[i]); //这里用来乐曲速度。
  138.     }
  139.     delay(2000);
  140. }</font>
复制代码




Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
IDE当前支持的功能有:

  • GDB调试
  • 封装库下载安装
  • 代码自动补全提示
  • 中英文模式
  • UTF-8\GBK编码格式
  • 代码快速格式化
  • SWD\串口程序下载&调试(已验证)
  • DFU程序下载方式(待验证)
  • USB HID程序下载方式(待验证)
  • maple DFU程序下载方式(待验证)
  • maple DFU2程序下载方式(待验证)
  • MassStorage程序下载方式(待验证)

更多功能细节请前往www.stduino.com进行了解

已经支持的芯片&板型列表:

  • Stduino UNO&Nano
  • Nucleo 144 boards
  • Nucleo 64 boards
  • Nucleo 32 boards
  • Discovery boards
  • Eval boards
  • STM32MP1 series coprocessor boards
  • Generic STM32F0 boards
  • Generic STM32F1 boards
  • Generic STM32F3 boards
  • Generic STM32F4 boards
  • Generic STM32H7 boards
  • Generic STM32L0 boards
  • 3D printer boards
  • LoRa boards
  • Electronic Speed Controller boards
  • Generic flight controllers
  • Garatronics boards
  • Midatronics boards

更多功能集成正在进行中~


收藏 评论0 发布时间:2020-8-6 20:04

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版