37种传感器(十八)之无源蜂鸣器模块+Stduino Nano&UNO

本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=44&extra=page%3D1=

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

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

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

C调音符对应的音调频率如下图:(每两个音调频率相差

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

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

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

电路连接:

代码展示:

#define C0 (2)#define C1_LOW  (262)
#define C2_LOW  (294)
#define C3_LOW  (330)
#define C4_LOW  (349)
#define C5_LOW  (392)
#define C6_LOW  (440)
#define C7_LOW  (494)#define C1      (523)
#define C2      (587)
#define C3      (659)
#define C4      (698)
#define C4S     (740)//C4#
#define C5      (784)
#define C5S     (831)//C5#
#define C6      (880)
#define C7      (988)#define C1_HIGH (1046)
#define C2_HIGH (1175)
#define C3_HIGH (1318)
#define C4_HIGH (1397)
#define C5_HIGH (1568)
#define C6_HIGH (1760)
#define C7_HIGH (1976)#define WHOLE (1)
#define HALF (0.5)
#define QUARTER (0.25)
#define EIGHTH (0.125)
#define SIXTEENTH (0.0625)int tune[]=                 //根据简谱列出各频率
{C6,C7,C1_HIGH,C7,C1_HIGH,C3_HIGH,//C7,C3,C3,C6,C5,C6,C1_HIGH,C5,C0,C3,C3,C4,C3,C4,C1_HIGH,C3,C0,C1_HIGH,C1_HIGH,C1_HIGH,C7,C4S,C4S,C7,C7,C0,C6,C7,//C1_HIGH,C7,C1_HIGH,C3_HIGH,C7,C0,C3,C3,C6,C5,C6,C1_HIGH,C5,C0,C3,C4,C1_HIGH,C7,C7,C1_HIGH,C2_HIGH,C2_HIGH,C3_HIGH,C1_HIGH,C0,C1_HIGH,C7,C6,C6,C7,C5S,//C6,C0,C1_HIGH,C2_HIGH,C3_HIGH,C2_HIGH,C3_HIGH,C5_HIGH,C2_HIGH,C0,C5,C5,C1_HIGH,C7,C1_HIGH,C3_HIGH,C0,C0,C6,C7,C1_HIGH,C7,C2_HIGH,C2_HIGH,C1,C5,C5,C0,C4_HIGH,C3_HIGH,C2_HIGH,C1_HIGH,//C3_HIGH,C3_HIGH,C0,C3_HIGH,C6_HIGH,C5_HIGH,C5_HIGH,C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C5_HIGH,C3_HIGH,C0,C3_HIGH,C6_HIGH,C5_HIGH,C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C7,C6,C0,C6,C7,C6
};
float durt[]=                   //根据简谱列出各节拍
{EIGHTH,EIGHTH,QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER + QUARTER + QUARTER,EIGHTH,EIGHTH,QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER + EIGHTH,EIGHTH,EIGHTH,QUARTER+EIGHTH,QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER+QUARTER+QUARTER,EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER+EIGHTH,QUARTER,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,QUARTER,QUARTER,QUARTER,QUARTER,QUARTER+QUARTER+QUARTER,QUARTER+QUARTER,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER+QUARTER,QUARTER,QUARTER,QUARTER+QUARTER,QUARTER+QUARTER,EIGHTH,EIGHTH,QUARTER+QUARTER,EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,QUARTER+QUARTER+QUARTER};int Time = 2000;
int BUZZER = A0;int length;void setup()
{// put your setup code here, to run once:length=sizeof(tune)/sizeof(tune[0]);   //计算长度
}void loop()
{// put your main code here, to run repeatedly:for(int i=0;i<length;i++){if(tune[i]!=0){tone(BUZZER,tune[i]);}  else{noTone(BUZZER);}delay(Time*durt[i]); //这里用来乐曲速度。}delay(2000);
}

37种传感器(十八)无源蜂鸣器模块+Stduino NanoUNO相关推荐

  1. 37种传感器(十)之手指心跳检测模块+Stduino NanoUNO

    37种传感器(十)之手指心跳检测模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&ti ...

  2. 37种传感器(十四)之循迹模块+Stduino NanoUNO

    37种传感器(十四)之循迹模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=3 ...

  3. 37种传感器(十九)之红外避障模块+Stduino NanoUNO

    37种传感器(十九)之红外避障模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid ...

  4. 37种传感器(二十二)之倾斜开关模块+Stduino NanoUNO

    37种传感器(二十二)之倾斜开关模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&ti ...

  5. 37种传感器(六)之声音传感器模块+Stduino NanoUNO

    37种传感器(六)之声音传感器模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid ...

  6. 37种传感器(二十一)之共阴型双色LED模块+Stduino NanoUNO

    37种传感器(二十一)之共阴型双色LED模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&am ...

  7. 37种传感器(十一)之金属触摸模块+Stduino NanoUNO

    37种传感器(十一)之金属触摸模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid ...

  8. AIOT核心技术之一--37种传感器超详细介绍

    AIOT核心技术之一–37种传感器超详细介绍 我们知道,传感器对于AIOT来说是最核心的技术之一,在物理层中几乎就是通过各种传感器来从周围读取数据用网络技术传给应用层的人工智能.机器学习.大数据等领域 ...

  9. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写...

    实验十八:SDRAM模块① - 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者.笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙.<整合篇>之际, ...

最新文章

  1. linux直接控制IO叫,Linux IO控制命令生成
  2. StarlingMVC Framework 原理。。。
  3. 查询数据库 收集 (如某个字段不是中文)
  4. 正态分布为什么常见?
  5. 极光推送指定用户推送_干货|SpringBoot集成极光推送完整实现代码(建议收藏)...
  6. 部署thinkphp5框架的php,三、部署ThinkPHP5框架
  7. Kubernetes--玩转Pod滚动更新123
  8. hdu3468 Treasure Hunting 二分匹配
  9. git-osc自己定义控件之:CircleImageView
  10. 2018-7-10-随笔-计算机系统和程序设计方法
  11. linux 线程和进程优先级,c – 在linux中更改线程优先级和调度程序
  12. 26. 复杂链表的复制
  13. 系统管理_ubuntu出现只读文件系统时
  14. word文档中打钩的8种方法【实用】
  15. 【上网】微信能上网,谷歌浏览器上不了网,怎么解决?
  16. Moment工具库学习
  17. .net linux 界面设计,.NET Core3.0开发Liunx桌面应用程序
  18. 黑马python2019吾爱破解_2019KCTF 南充茶坊(python逆向)
  19. codeforces 1669F
  20. 进程间通信——消息队列(Message queue)

热门文章

  1. 医疗汇报医学演示PPT模板
  2. 第一篇 厚黑学 代序一 被忽略的大师
  3. Linux套接字编程之sockaddr与sockaddr_in网络套接字,sockaddr_un进程间通信本地套接字
  4. 基于ARCGIS计算RUSLE中LS因子值
  5. OTA--卡刷全包、差分升级包制作、分析(代码摘自Google)---2
  6. 汽车毫米波雷达的规定和标准(四)
  7. 大学计算机基础复习资料(第一章)
  8. 凭栏听音,化险为夷——配电系统中的电磁隐患解析
  9. 食神摇摇中图片的晃动效果
  10. pptv泥够了!pptv“关闭”事件为营销炒作坐实!