- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蜂鸣器模块
蜂鸣器模块
一、相关介绍
相信大家对蜂鸣器都不会陌生,我们在很多方案中都会用到蜂鸣器,大部分都
是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。
这里对单片机在蜂鸣器驱动上的应用作一下描述。
二、驱动方式
惯用驱动蜂鸣器的方式有两种:一种是 PWM 输出口直接驱动,另一种是利用
I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。
PWM 输出口直接驱动是利用 PWM 输出口本身可以输出一定的方波来直接驱
动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置PWM 口的输出的,
可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波
形之后,只要打开 PWM 输出,PWM 输出口就能输出该频率的方波,这个时候利
用这个波形就可以驱动蜂鸣器了。比如频率为2000Hz
的蜂鸣器的驱动,可以知道周期为500μs ,这样只需要把PWM 的周期设置为500μs ,
占空比电平设置为250μs ,就能产生一个频率为2000Hz 的方波,通过这个方波再利
用三极管就可以去驱动这个蜂鸣器了。
而利用I/O 定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时
器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可
以用来驱动蜂鸣器了。比如为2500Hz 的蜂鸣器的驱动,可以知道周期为400μs ,这
样只需要驱动蜂鸣器的 I/O 口每 200μs 翻转一次电平就可以产生一个频率为
2500Hz ,占空比为 1/2duty 的方波,再通过三极管放大就可以驱动这个蜂鸣器了。
三、模块使用
大家看看到模块后应该明白,其实他非常方便使用,一个电源端,一个地端,还有一
个就是信号输入端。我们只要把电源、地线接好,那信号线接上IO 口就行
四、模块功能测试
硬件要求
Arduino 控制器 × 1
USB 数据线 × 1
蜂鸣器模块 × 1
可调电位器(10K) × 1
我们下面的测试例子主要是学会如何控制蜂鸣器的发声,和一些简单的应用,当然还有
用两种不同的驱动方式驱动蜂鸣器的发声,大家可以比较下效果,一方便以后的使用。
具体的接法下面有
下面的这个测试代码是一个关于使用模拟量控制蜂鸣器显示频率的程序:
程序说明:第 10 引脚为控制蜂鸣器的引脚。
第3 引脚为模拟量引脚,所使用的可调电阻为10K。
功能:调动可调电阻器可以听到蜂鸣器响明显的频率变化。
int speakerPin = 8;//控制喇叭的引脚
int potPin = 4;//控制可调电阻器的引脚
int value = 0;
void setup() {
pinMode(speakerPin, OUTPUT);
}
void loop() {
value = analogRead(potPin);读电阻器引脚的值
digitalWrite(speakerPin, HIGH);
delay(value);调节喇叭响的时间;
digitalWrite(speakerPin, LOW);
delay(value);调节喇叭不响的时间;
}
在这里我们可以认为的调节电位器来达到延时不同时间的效果,从而改变蜂鸣器的
发声频率,大家可以试下,看到底是不是那样的,嗯~ ~ ~ ~
下面我们加了一个按键开关控制蜂鸣器,这样我们就能模拟一个简单的门铃,当按
键被按下时喇叭就可以发出响声了。
实物连接如下:
文档评论(0)