




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 蜂鸣器模块蜂鸣器模块 一、相关介绍一、相关介绍 相信大家对蜂鸣器都不会陌生,我们在很多方案中都会用到蜂鸣器,大部分都 是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。 这里对单片机在蜂鸣器驱动上的应用作一下描述。 二、驱动方式二、驱动方式 惯用驱动蜂鸣器的方式有两种:一种是 PWM 输出口直接驱动,另一种是利用 I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。 PWM 输出口直接驱动是利用 PWM 输出口本身可以输出一定的方波来直接驱 动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置 PWM 口的输出的, 可以设置占空比、周期等等,通过设置这些寄存器产生符
2、合蜂鸣器要求的频率的波 形之后,只要打开 PWM 输出,PWM 输出口就能输出该频率的方波,这个时候利 用这个波形就可以驱动蜂鸣器了。比如频率为 2000Hz http:/keyes- 的蜂鸣器的驱动, 可以知道周期为 500s, 这样只需要把 PWM 的周期设置为 500s, 占空比电平设置为 250s,就能产生一个频率为 2000Hz 的方波,通过这个方波再利 用三极管就可以去驱动这个蜂鸣器了。 而利用 I/O 定时翻转电平来产生驱动波形的方式会比较麻烦一点, 必须利用定时 器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可 以用来驱动蜂鸣器了。比如为 2500Hz
3、的蜂鸣器的驱动,可以知道周期为 400s,这 样只需要驱动蜂鸣器的 I/O 口每 200s 翻转一次电平就可以产生一个频率为 2500Hz,占空比为 1/2duty 的方波,再通过三极管放大就可以驱动这个蜂鸣器了。 http:/keyes- 三、模块使用三、模块使用 大家看看到模块后应该明白,其实他非常方便使用,一个电源端,一个地端,还有一 个就是信号输入端。我们只要把电源、地线接好,那信号线接上 IO 口就行 四、模块功能测试四、模块功能测试 硬件要求 Arduino 控制器 1 USB 数据线 1 蜂鸣器模块 1 可调电位器(10K) 1 我们下面的测试例子主要是学会如何控制蜂鸣器的发声,
4、和一些简单的应用,当然还有 http:/keyes- 用两种不同的驱动方式驱动蜂鸣器的发声,大家可以比较下效果,一方便以后的使用。 具体的接法下面有 下面的这个测试代码是一个关于使用模拟量控制蜂鸣器显示频率的程序: 程序说明:第 10 引脚为控制蜂鸣器的引脚。 第 3 引脚为模拟量引脚,所使用的可调电阻为 10K。 功能:调动可调电阻器可以听到蜂鸣器响明显的频率变化。 int speakerPin = 8;/控制喇叭的引脚 int potPin = 4;/控制可调电阻器的引脚 int value = 0; void setup() pinMode(speakerPin, OUTPUT); vo
5、id loop() http:/keyes- value = analogRead(potPin);读电阻器引脚的值 digitalWrite(speakerPin, HIGH); delay(value);调节喇叭响的时间; digitalWrite(speakerPin, LOW); delay(value);调节喇叭不响的时间; 在这里我们可以认为的调节电位器来达到延时不同时间的效果,从而改变蜂鸣器的 发声频率,大家可以试下,看到底是不是那样的,嗯 下面我们加了一个按键开关控制蜂鸣器,这样我们就能模拟一个简单的门铃,当按 键被按下时喇叭就可以发出响声了。 实物连接如下: http:/ke
6、yes- 示例代码: const int buttonPin = 4; / 按键引脚; const int speakerPin = 8; /蜂鸣器引脚; / variables will change: int buttonState = 0; / 读取按键引脚的一个值 void setup() /设置按键引脚为输入模式,蜂鸣器引脚为输出模式; pinMode(speakerPin, OUTPUT); pinMode(buttonPin, INPUT); void loop() / 读取按键一个初值,这里在电路中我接了是在默认高电平,所以初值为高; buttonState = digital
7、Read(buttonPin); /* 如果按键为高,则蜂鸣器不响; 因为我刚开始接在硬件电路中初值为高,所以 if 条件成立,蜂鸣器不响 */ if (buttonState = HIGH) digitalWrite(speakerPin,LOW); http:/keyes- else /这里按键的值为低电平(也是按键被按下时) ;蜂鸣器响起 digitalWrite(speakerPin,HIGH); 这个程序比较简单,相信大家一看就明白了,为了增加大家对蜂蜜器的认识我为大 家写了一小段用 PWM 控制蜂鸣器的代码。 下面这个程序是利用 PWM(脉冲宽度调节)控制蜂鸣器的,下载到单片机可以
8、听到 蜂鸣器发出不同的音调,我们只要根据相关曲目调节出音符(0,1,2,3,4,5,6,7)就可以让蜂鸣 器唱歌了。 程序如下: int speakerPin = 8; byte song_table = 30, 30, 30, 40, 50, 60, 70, 80, 90, 100,110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 250, 240, 230, 220, 210, 200, 190, 180, 170, 160, 150, 140, 130, 120, 110, 100, 90, 80, 70, 60, 50, 40, 30, 30, 30 ; int MAX = 50; int count = 0; void setup() http:/keyes- pinMode(speakerPin, OUTPUT); void loop() analogWrite(speakerPin,song_tablecount); count +; if (count MAX) count
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届吉林省吉林市长春汽车经济开发区第六中学高一化学第二学期期末联考试题含解析
- 北京市首都师大附中2025年化学高二下期末检测试题含解析
- 兽医执业注册管理办法
- 材料使用取货管理办法
- 出口专用标签管理办法
- 医保药房售卖管理办法
- 学术质量评估
- 网络教学系统设计与实施方案
- 江苏徐州地名管理办法
- 机型数量评审管理办法
- AI人工智能伦理与社会责任
- 2024年中国心力衰竭诊断与治疗指南更新要点解读
- 系统压力测试评估执行规范
- DB3702-T 0009-2020 市民诉求数据分析与应用规范
- 坐大巴车安全教育
- 广西建设职业技术学院博士高层次人才招考聘用高频重点提升(共500题)附带答案详解
- 军事训练伤病预防
- 阿尔伯特;哈伯德-把信送给加西亚
- 2025中级消防设施操作员作业考试题及答案(1000题)
- 铁路货物运价规则
- 病房突发事件的应急与处理
评论
0/150
提交评论