Arduino 使用无源蜂鸣器播放声音实验

资料下载
链接:https://pan.baidu.com/s/1OfaxDexNl3Lwj1GnbxnQnw?pwd=lx88

1.1 介绍:

本实验用无源蜂鸣器播放音乐,无源蜂鸣器是通过PWM脉冲宽度调制脉冲进而调节音调,
PWM比较多用于调节LED灯的亮度或者调节无源蜂鸣器的频率,或者是电机的转动速度,电机带动的车轮速度也就能很容易控制了,在玩一些Arduino机器人时,更能体现PWM的好处。
音乐除了要“唱的准”,还要“节奏对”,每一个音符的持续时间,就是节拍啦。我们可以用延时多少来设置节拍的,例如:1拍,1秒即1000毫秒;1/2拍,0.5秒即500毫秒;1/4拍,0.25秒即250毫秒;1/8拍,0.125秒即125毫秒….,我们可以试一试组合不同的音调和节拍,看看会有什么不同的效果。

1.2 模块相关资料:

在这里插入图片描述

1.3 实验组件:

在这里插入图片描述

1.4模块接线图:

在这里插入图片描述

1.5 实验代码:

                                                                             
/*
 无源蜂鸣器模块
 https://sourl.cn/Pr4UE8
*/
void setup(){
  pinMode(3, OUTPUT);        //设置3为输出
}
void loop(){
  tone(3,392);          //控制引脚3输出模拟值为262的脉冲
  delay(125);         //延迟125毫秒   
  tone(3,392);
  delay(125);
  tone(3,440);
  delay(250);
  tone(3,392);
  delay(250);
  tone(3,532);
  delay(250);
  tone(3,494);
  delay(500);
  tone(3,392);
  delay(125);
  tone(3,392);
  delay(125);
  tone(3,440);
  delay(250);
  tone(3,392);
  delay(250);
  tone(3,587);
  delay(250);
  tone(3,532);
  delay(500);
  tone(3,392);
  delay(125);
  tone(3,392);
  delay(125);
  tone(3,784);
  delay(250);
  tone(3,659);
  delay(250);
  tone(3,532);
  delay(250);
  tone(3,494);
  delay(250);
  tone(3,440);
  delay(250);
  tone(3,392);
  delay(125);
  tone(3,392);
  delay(125);
  tone(3,330);
  delay(250);
  tone(3,262);
  delay(250);
  tone(3,587);
  delay(250);
  tone(3,532);
  delay(500);
}

1.6实验结果:

上传代码到开发板,就会听到无源蜂鸣器播放这首“生日快乐歌”了

1.7 代码说明:

在音乐中有两个重要的因素:音调和节拍
在音乐课上,老师教过我们唱“1(Do)、2(Re)、3(Mi)、4(Fa) 、5(Sol) 、6(La) 、7(Si)”是音乐当中的唱名,就对应了音调中的C、D、E、F、G、A、B这些音名。
1(Do) 2(Re) 3(Mi) 4(Fa) 5(Sol) 6(La) 7(Si)
C D E F G A B

比如

程序 tone(3,262)😉; 的意思是让引脚3输出模拟值为262的脉冲,即对应音调1(D0);同理2(Re)、3(Mi)、4(Fa) 、5(Sol) 、6(La) 、7(Si)的音调分别对应输出模拟值为294,330,349,196,440,494的脉冲。
频率(音调)高低判断时先看后面的数字,数字越大,音调越高,数字相同时看前面的字母,从C到B频率(音调)越来越高;而节拍是音符延时时间,数值越大,延时时间越长。这里我按照“生日快乐歌”来设计了音调和节拍,我们先来看它的简谱:

节拍是指每个音符持续的时间。音谱中不带线的一个音符就是一拍,延时1000毫秒,而带一条下划线的音符节拍是不带线音符节拍的1/2,带两条下划线的音符节拍是不带线音符节拍的1/4(动画:,根据对话圈出相应的音符和标注)。 例如:第一个音符下面有两条线,所以就是1/4拍,延时250毫秒。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千年糊涂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值