单片机学习笔记---蜂鸣器工作原理

目录

蜂鸣器介绍

蜂鸣器的驱动方式

ULN2003D芯片工作原理

实战预备知识:基础乐理

音名的分组

全音和半音的关系

音高的表示

五线谱中的符号定义

简谱上的符号定义

C调音符与频率对照表

相关计算


蜂鸣器介绍

蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号

蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器

有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。

无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

不同的工程师画的蜂鸣器的符号不一样,比如上图中间的那张图的样子,

还有下图这种符号也表示蜂鸣器

或者直接画成一个喇叭的形式

它的原理图

PS:BZ是一个网络编号

蜂鸣器也分正负极,像下图中标了一个+极符号的这边引脚就是蜂鸣器的正极。如果引脚没有被剪过的话,长的一边为正极。

蜂鸣器的驱动方式

有源蜂鸣器的驱动方式

一般,有源蜂鸣器一般通电就可以响了。它的正极接到电源的正极,负极接地就额可以响了。

无源蜂鸣器的驱动方式

我们的开发板上是无源蜂鸣器,如果将无源蜂鸣器的正极接到电源的正极,负极接到IO口上,然后IO不断地输出一个频率,不断地震荡,根据这个频率,蜂鸣器也可以发声,并且频率可以由震荡去改变。

以上是两种蜂鸣器的一般驱动方式,但由于LED供电比较小,所以我们一般加一个驱动电路,最常见的是加一个三极管开关驱动电路

三极管分为NPN和PNP两种

NPN型的三极管开关是高电平导通的三极管开关

它相当于一个正常开关的外加一只手来控制这个开关的闭合,如果给这只手一个高电平,那么它就帮我们把这个开关闭合,如果给它一个低电平,它就帮我们把开关打开。

手的那端还接了一个限流电阻,它可以减少控制信号的电流,就是相当于把控制信号的驱动能力这一指标给弱化了。

实际的驱动来源于VCC这里

这个VCC给蜂鸣器提供功率信号,可以省下单片机的驱动能力。

同理,PNP型三极管开关也是一样的工作方式,但是它由低电平导通的。

这个限流电阻只需要能保证三极管开关能够饱和就可以了,1K欧或者10K欧的这个范围都行。

还有一个集成电路驱动的方式用的比较少

很少见到这种驱动方式,但是我们的开放板就是这种驱动方式。单片机的IO口不能直接驱动蜂鸣器,所以就过一个芯片,这个芯片叫做ULN2003(驱动芯片),它的原理图就在步进机的这里:

它和蜂鸣器的连接是这样:

ULN2003D芯片工作原理

那ULN2003D这个芯片是怎么工作的呢?我们要看一下芯片手册的介绍

其中这个达林顿晶体管也是一种三极管开关

一般也可以叫达林顿管为复合管,它可以增大驱动能力。

它是NPN型的三极管开关

然后再看芯片的逻辑框图(虽然图这样话的,但其实它是由达林顿管组成的)

中间那一列是非门(取反),如果输入为0,则输出1,输入1,则输出为0。

如果将它其中一个通路接上负载(比如说蜂鸣器),那么非门的输入端为1时,输出为0,则蜂鸣器就会响。

如果非门的输入端为0,则输出端为1,则这个芯片没有驱动能力,驱动无效,即使是别接了一个接了地的负载也不可以。

这一排LED其实是用来测试的

比如,可以来看一下它的应用电路,如果非门的输入端没有电平,这时,芯片的输出端接上一排负载(LED),当按下这个lamp test灯测试开关之后,那么就相当于芯片内部的LED的阴极接上了低电平0,则外部的LED就导通了,它就会亮。

然后我们51单片机是TTL电平,5V代表高电平,0V代表低电平

以上就把蜂鸣器的驱动原理讲完了。

总结一句话就是,我们只需要控制P15引脚输出1或者0就能控制蜂鸣器是否有电流,然后我们是无源蜂鸣器,我们就需要控制P15产生一个振动频率,蜂鸣器就跟着震动频率发声了。

PS:我们的单片机的设计不太合理,但是自己设计电路的时候,不能让无源蜂鸣器始终充电,很容易烧毁蜂鸣器

实战预备知识:基础乐理

接下来我们开始认识一下钢琴和乐谱,因为我们要用蜂鸣器发出有规律的音乐旋律。

由于我也不是学音乐的专业人士,我也是在网上现学了一下,我会把自己认为解释的好的文章的链接贴出来,大家可以直接点击查看,一定要稍微大概了解一下!

音名的分组

分组如图所示:

更详细的解释可以看这篇文章

链接:音名的分组 - 新芭网 (sin80.com)

全音和半音的关系

官方解释: 相邻的两个音之间,最小的距离叫半音。 钢琴上两个紧挨着的音,就是半音。两个半音的距离构成了一个全音。

更详细的解释可以看这篇文章

链接:3分钟了解钢琴乐理里的全音和半音 - 知乎 (zhihu.com)

音高的表示

如c1和c2相差8度,不同组之间是8度的关系

白键的音:以中央C为分界线,它的左边是降音,右边的是升音,数字头上一个点就是升一个8度,数字底下一个点就是降一个8度,两点就降两个8度

黑键的音:就要用到#(升音)和b(降音)符号,如果是#1就是1升高半音(往右边移一个键),如果是b1就是1降低半音(往左边移一个键)

然后弹钢琴的时候主要是按的音高、按的时长时值)就可以弹出音乐来。

时值就是比如下图中的-符号,表示这个5的音占了两个拍子。

五线谱中的符号定义

再来看看五线谱中的符号定义

一般我们以四分音符为时间基准,这个四分音符可以是100ms也可以是200ms。

比如四分音符是500ms,那么二分音符就是它的两倍,也就是1000ms(1s),全音符就是2000ms(2s)

八分音符就是250ms,十六分音符就是125ms.....

这就跟我们的二进制很像。

简谱上的符号定义

再来看一下简谱上的符号定义

下图中的这符号1=D是调号,4/4是拍号

4/4是拍号,总的意思是以四分音符为一拍,每小节为四拍。

附点表示这个音符延长为原来的二分之一,比如原来这个音符是500ms,加了这个附点之后就变成500ms加上原来的一半=500ms+250ms=750ms。

每一小节的总时间是一样的,都是4*500ms=2000ms=2s

然后还要注意弹的时候的一些细节:

如果到这里还是看不懂乐理的话,可以到某站搜索一下基础乐理,看看基础的解释。

C调音符与频率对照表

有了前面的乐理基础,我们想用蜂鸣器模拟音乐的旋律的话还需要这个表:

这个表只是部分音和频率

表上说的C调就是对应我们前面说的这个D调,只不过我们上表是C调

C调简单说就是全部弹白色的钢琴键,其他调就会出现要弹黑键的情况

其中这个对应中央C键

这张表涵盖了钢琴上的这些键

一组中白色的键和黑色的键一共是12个键,正好对应表中的一列

那么我们就是根据表中的频率值去控制我们的定时器产生相应频率的计时,有了频率就有了计时频率、计时周期,有了周期计时然后就控制中断,再去控制IO的翻转,就可以控制我们的频率。

表上的这些频率的关系成一个平滑的曲线关系

我们以低音6为基准频率,其他频率都是以它为基准做一个倍数的关系

这一个a到下一个a是两倍的关系

一组中的12个键的频率是以等比数列进行平分的,也叫做12平分率

比如这组键的频率比都是1.06,所以是等比数列关系

那么这个a到它自己右边的键的频率是2的1/12次方,比如277=262*2^1/12

相关计算

因为我们是通过频率来产生对应的音符的,但是单片机的定时器是用周期来计时的,所以要将频率转换成周期。

定时器加1的时间就是1微秒,也就是一个机器周期(晶振为12兆),有了这个周期我们翻转IO口就可以控制频率。

重装载值=65536-周期/2(us)

以下是计算好的结果:

音符

频率(Hz)

周期(us)

周期/2(us)

取整

重装载值

索引

1

262

3816.793893

1908.396947

1908

63628

1

1#

277

3610.108303

1805.054152

1805

63731

2

2

294

3401.360544

1700.680272

1701

63835

3

2#

311

3215.434084

1607.717042

1608

63928

4

3

330

3030.30303

1515.151515

1515

64021

5

4

349

2865.329513

1432.664756

1433

64103

6

4#

370

2702.702703

1351.351351

1351

64185

7

5

392

2551.020408

1275.510204

1276

64260

8

5#

415

2409.638554

1204.819277

1205

64331

9

6

440

2272.727273

1136.363636

1136

64400

10

6#

466

2145.922747

1072.961373

1073

64463

11

7

496

2016.129032

1008.064516

1008

64528

12

1

523

1912.045889

956.0229446

956

64580

13

1#

554

1805.054152

902.5270758

903

64633

14

2

587

1703.577513

851.7887564

852

64684

15

2#

622

1607.717042

803.8585209

804

64732

16

3

659

1517.450683

758.7253414

759

64777

17

4

698

1432.664756

716.3323782

716

64820

18

4#

740

1351.351351

675.6756757

676

64860

19

5

784

1275.510204

637.755102

638

64898

20

5#

831

1203.369434

601.6847172

602

64934

21

6

880

1136.363636

568.1818182

568

64968

22

6#

932

1072.961373

536.4806867

536

65000

23

7

988

1012.145749

506.0728745

506

65030

24

1

1046

956.0229446

478.0114723

478

65058

25

1#

1109

901.7132552

450.8566276

451

65085

26

2

1175

851.0638298

425.5319149

426

65110

27

2#

1245

803.2128514

401.6064257

402

65134

28

3

1318

758.7253414

379.3626707

379

65157

29

4

1397

715.8196135

357.9098067

358

65178

30

4#

1480

675.6756757

337.8378378

338

65198

31

5

1568

637.755102

318.877551

319

65217

32

5#

1661

602.0469597

301.0234798

301

65235

33

6

1760

568.1818182

284.0909091

284

65252

34

6#

1865

536.1930295

268.0965147

268

65268

35

7

1976

506.0728745

253.0364372

253

65283

36

下一节开始代码演示!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/255012.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SaperaCamExpert(相机专家)中文使用指南

参考:SaperaCamExpert中文使用指南.PDF 文章目录 软件介绍安装首次打开资源占用率功能主界面布局菜单栏FileViewPre-Processing:预处理 Tools: 快捷键:新建;打开;保存;帮助Device窗体属性树图像…

Bytebase 签约 Vianova,助力欧洲城市交通智能平台中 Snowflake 和 PG 的变更自动化及版本控制

在数字化发展的浪潮中,自动化数据库变更管理成为提升产品上线效率、降低人为失误风险的关键工具,同时促进流程的一致性与标准化,确保合规性和变更的可追溯性。近日,数据库 DevOps 团队协同管理工具 Bytebase 签约欧洲交通数据管理…

网站被攻击有什么办法呢?

最近,德迅云安全遇到不少网站用户遇到攻击问题,来咨询安全解决方案。目前在所有的网络攻击方式中,DDoS是最常见,也是最高频的攻击方式之一。不少用户网站上线后,经常会遭受到攻击的困扰。有些攻击持续时间比较短影响较…

股票均线的使用方法和实战技术,看涨看空的均线形态与案例教学

一、教程描述 本套教程讲解了14种均线的特殊形态,通过直观图形以及大量案例的教学,将深奥、繁琐的均线变得生动与具体,广大投资者在认真学习以后,可以学会均线的使用方法,掌握最强的均线应用实战技术。本套教程不仅适…

Electron+Vue实现仿网易云音乐实战

前言 这个项目是我跟着官方文档的那个Electron入门教程大致跑了一遍,了解了下Electron开发流程之后的实战项目,所以中间应该是会有很多写法不是很规范,安全性有可能也没考虑到,可实现的各种api也不是很了解,适合初学者。 必须感谢 https://github.com/Binaryify/NeteaseC…

Postman接口与压力测试实例

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。 1、环境变量和全局变量设置 环境变量可以使用在以下地方: URLURL paramsHeader valuesform-data/url-encoded valuesRaw body contentHelper fi…

工信部颁发的《计算机视觉处理设计开发工程师》中级证书

计算机视觉(Computer Vision)是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说,计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标,计算机视觉结合了图像处理、机器学习、模…

[VulnHub靶机渗透] Misdirection: 1

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

关于数字图像处理考试

我们学校这门科目是半学期就完结哦,同学们学习的时候要注意时间哦。 选择题不用管,到时候会有各种版本的复习资料的。 以下这些东西可能会是大题的重点: 我根据平时代码总结的,供参考 基本操作: 1.读图:…

HTTP和HTTPS区别!

http 是我们几乎天天都要打交道的东西,相关知识点有点多,所以也有不少面试必问的点,这里做了一些整理,帮且大家树立完整的 http 知识体系,对面试官说 so easy HTTP 的特点和缺点 特点:无连接、无状态、灵…

【Git版本控制 01】基本操作

目录 一、初始配置 二、添加文件 三、查看日志 四、修改文件 五、版本回退 六、撤销修改 七、删除文件 一、初始配置 Git版本控制器:记录每次的修改以及版本迭代的一个管理系统。 # 初始化本地仓库:git init(base) [rootlocalhost gitcode]# gi…

房屋租赁系统的Java实战开发之旅

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【C语言期末】商品管理系统

本文资源:https://download.csdn.net/download/weixin_47040861/88820155 1.题目要求 商品管理系统 商品信息包括:包括编号、类别、名称、价格、折扣比例、生产时间 、存货数量等要求:1、信息首先保存在文件中,然后打开文件进行…

用友U8 Cloud ReportDetailDataQuery SQL注入漏洞复现(QVD-2023-47860)

0x01 产品简介 用友U8 Cloud 提供企业级云ERP整体解决方案,全面支持多组织业务协同,实现企业互联网资源连接。 U8 Cloud 亦是亚太地区成长型企业最广泛采用的云解决方案。 0x02 漏洞概述 用友U8 cloud ReportDetailDataQuery 接口处存在SQL注入漏洞,攻击者未经授权可以访…

C语言----内存函数

内存函数主要用于动态分配和管理内存,它直接从指针的方位上进行操作,可以实现字节单位的操作。 其包含的头文件都是:string.h memcpy copy block of memory的缩写----拷贝内存块 格式: void *memcpy(void *dest, const void …

解决MapboxGL的Popup不支持HTMLDiv元素的问题

解决MapboxGL的Popup不支持HTMLDiv元素的问题 官网给出的文档是不支持HTMLDivElement的,只支持HTML标签。 如果单纯的只显示字符串,那就没问题,如果想在Popup中使用更强大的功能,此时就不行了,下面是源码的一部分显示…

【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件

问题 如图,明明安装Vue是全局包,但是使用时却提示: 解决办法 使用以下命令任意一种命令查看全局包的配置路径 npm root -g 然后将此路径(不包括node_modules)添加到环境变量中去,这里注意,原…

大模型学习 一

https://www.bilibili.com/video/BV1Kz4y1x7AK/?spm_id_from333.337.search-card.all.click GPU 计算单元多 并行计算能力强 指数更重要 A100 80G V100 A100 海外 100元/时 单卡 多卡并行: 单机多卡 模型并行 有资源的浪费 反向传播 反向传播(B…

【机器学习笔记】决策树

决策树 文章目录 决策树1 决策树学习基础2 经典决策树算法3 过拟合问题 1 决策树学习基础 适用决策树学习的经典目标问题 带有非数值特征的分类问题离散特征没有相似度概念特征无序 例子: SkyTempHumidWindWaterForecastEnjoySunnyWarmNormalStrongWarmSameYesSunny…

深入探究 HTTP 简化:httplib 库介绍

✏️心若有所向往,何惧道阻且长 文章目录 简介特性主要类介绍httplib::Server类httplib::Client类httplib::Request类httplib::Response类 示例服务器客户端 总结 简介 在当今的软件开发中,与网络通信相关的任务变得日益普遍。HTTP(Hypertext…