51单片机入门:蜂鸣器

蜂鸣器介绍

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

蜂鸣器的种类

1、从结构上:压电式蜂鸣器电磁式蜂鸣器

压电式蜂鸣器:通过压电陶瓷的压电效应原理工作的。当加有交变电压时,压电陶瓷产生机械振动,使蜂鸣器发声。通常用一体化结构。

电磁式蜂鸣器:利用电磁感应原理工作的。它主要由线圈和磁铁组成,当电流通过线圈时产生磁场,与磁铁相互作用,使蜂鸣器发声。通常采用分体结构。

2、从驱动方式上:有源蜂鸣器无源蜂鸣器

有源蜂鸣器

内部包含一个振荡电路,能将恒定的直流电转化为一定频率的脉冲信号,从而实现磁场交变,带动蜂鸣器振动发音。它不需要额外的驱动电路,只要接通直流电源即可工作

缺点:由于内部包含振荡电路,成本相对较高,且声音频率单一。

无源蜂鸣器

需要接收 2K~5K 左右的方波信号才能工作,即:通过外部电路产生振荡信号来驱动蜂鸣器发音。

调节:通过调整输入方波信号的占空比,可以控制蜂鸣器的音量;改变输入方波信号的频率,可以控制蜂鸣器的音调(音量指声音的强弱,即声音的振动幅度;音调指声音的高低,即声音的振动频率)。可实现音乐播放。

 


 蜂鸣器驱动电路

在蜂鸣器电路中,蜂鸣器电流通常相对较大(约40mA),这就意味着直接将蜂鸣器连接到单片机的输出引脚可能会超过设备的最大驱动能力,从而导致单片机的输出引脚过载,因此可能会导致设备损坏或者蜂鸣器无法正常工作。

例如:STM32的I/O口最大输出电流不要超过25mA;51单片机I/O口最大输出电流不要超过10mA;树莓派  8mA;ESP32  16mA;arduino比较给力,可以达到40mA,所以arduino可以直接接蜂鸣器,不用外围电路(当然这样也不是最佳实践)其他的则必须利用驱动电路放大电流了。

为了解决这个问题,一般常用三极管驱动集成电路ULN2003驱动的方法。

三极管驱动

其中,三极管起放大作用、电阻R52和R7起限流作用,重点讨论二极管D4。

续流二极管:首先说明这是二极管的功能而不是种类,通常配合电感性负载使用。当电感性负载的电流有突然的变化或减少时,电感会阻碍电流的变化(两端会产生反向电动势,即:尖峰电压),可能会破坏其他元件。配合续流二极管时,其电流可以较平缓地变化,避免突波电压的发生。

集成电路ULN2003

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。可直接驱动蜂鸣器、续电器等电路。

在普中开发板电路的原理图中如下:

可以看出BEEP(蜂鸣器)由P25控制。


代码设计

Buzzer.c

#include <REGX52.H>
#include <Delay.h>//蜂鸣器端口
sbit Buzzer=P2^5;/***功能:蜂鸣器发声时间*参数:时间(毫秒)*返回值:无*/
void Buzzer_Time(unsigned int ms){unsigned int i;for(i=0;i<ms;i++){Buzzer=!Buzzer;Delay();//通过延时来调节频率(音调)}
}

Buzzer.h

#ifndef __BUZZER_H__
#define __BUZZER_H__void Buzzer_Time(unsigned int ms);#endif

main.c

#include <REGX52.H>
#include "Delay.h"
#include "shuma.h"
#include "Key.h"
#include "Buzzer.h"sbit Buzzer=P2^5;
unsigned char KeyNum;
unsigned int i;void main (){while(1){KeyNum=Key();//获取键码if(KeyNum){Buzzer_Time(1000);shuma(1,KeyNum);}}
}

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

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

相关文章

企业微信主体能不能修改?

企业微信变更主体有什么作用&#xff1f;当我们的企业因为各种原因需要注销或已经注销&#xff0c;或者运营变更等情况&#xff0c;企业微信无法继续使用原主体继续使用时&#xff0c;可以申请企业主体变更&#xff0c;变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

C 深入指针(2)

目录 1 野指针 1.1 成因 1.2 如何规避野指针 2 assert 断言 2.1 用法 2.2 assert 的优点 2.1 assert 的缺点 3 小注解 3.1 Debug 和 Release 1 野指针 【概念】&#xff1a; 野指针就是指针指向的位置是不可知的&#xff08;随机的、不正确的、没有明确限制的&#…

CSS Web服务器、2D、动画和3D转换

Web服务器 我们自己写的网站只能自己访问浏览&#xff0c;但是如果想让其他人也浏览&#xff0c;可以将它放到服务器上。 什么是Web服务器 服务器(我们也会称之为主机)是提供计算服务的设备&#xff0c;它也是一台计算机。在网络环境下&#xff0c;根据服务器提供的服务类型不…

初识C语言——第十三天

关键字2&#xff1a; static 修饰局部变量&#xff0c;改变了局部变量的生命周期&#xff08;本质上是改变了变量的存储类型&#xff09; static修饰全局变量&#xff0c;使得这个全局变量只能在自己所在的源文件&#xff08;.c)内部可以使用&#xff0c;其他源文件不能使用 …

Partisia Blockchain 生态zk跨链DEX上线,加密资产将无缝转移

在 5 月 1 日&#xff0c;由 Partisia Blockchain 与 zkCross 创建合作推出的 Partisia zkCrossDEX 在 Partisia Blockchain 生态正式上线。Partisia zkCrossDEX 是 Partisia Blockchain 上重要的互操作枢纽&#xff0c;其融合了 zkCross 的 zk 技术跨链互操作方案&#xff0c;…

linux上Redis安装使用

环境centOS8 redis是缓存数据库&#xff0c;主要是用于在内存中存储数据&#xff0c;内存的读写很快&#xff0c;加快系统读写数据库的速度 一、Linux 安装 Redis 1. 下载Redis 官网下载Downloads - Redis 历史版本Index of /releases/ 本文中安装的版本为&#xff1a;h…

小红书图片文案编辑生成图文工具

在小红书上&#xff0c;种草图文的变现通常涉及以下几个步骤&#xff1a; 1. **建立影响力**&#xff1a;首先&#xff0c;你需要通过持续发布高质量的内容&#xff0c;积累粉丝和影响力。你的内容应该围绕特定的领域或主题&#xff0c;比如时尚、美妆、美食或旅行&#xff0c…

KUKA机器人KR3 R540维护保养——涂润滑脂

KUKA机器人在保养时少不了润滑脂&#xff0c;不同型号的机器人需要的润滑脂类型也不一样&#xff0c;保养时注意选用合适的润滑脂。本篇文章以KUKA机器人KR3 R540为例&#xff0c;在轴盖板 A2、A3、A5 的内侧涂上润滑脂。 一、涂润滑脂的作用 拆开机器人一个轴的盖板&am…

Docker私有仓库与Harbor部署使用

目录 一、本地私有仓库 1. 下载registry镜像 2. 在daemon.json文件中添加私有镜像仓库地址 ​编辑 3. 运行registry容器 4. Docker容器的重启策略如下 5. 为镜像打标签 6. 上传到私有仓库 7. 列出私有仓库的所有镜像 8. 列出私有仓库的centos镜像有哪些tag 9. 先删…

近50亿元国资助阵,全球最大量子独角兽登场!

4月30日&#xff0c;澳大利亚与PsiQuantum公司宣布签订一项近10亿澳元&#xff08;约6.2亿美元、47.24亿人民币&#xff09;的协议&#xff0c;旨在建造世界上第一台商业上“有用”的量子计算机。 仅在一天前&#xff0c;澳大利亚还投资了1840万澳元&#xff0c;在悉尼大学成立…

基于springboot+vue+Mysql的点餐平台网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

攻防世界-xff-referer

题目信息 分析过程 显示ip必须为123.123.123.123&#xff0c;则进行伪造 解题过程 打开repeator 提示必须来自https://www.google.com&#xff0c;则再次构造Referer 相关知识 x-forwarded-for 和 referer的区别: x-forwarded-for 用来证明ip的像是“127.0.0.1”这种&a…

嵌入式系统应用-拓展-FLASH之操作 SFUD (Serial Flash Universal Driver)之KEIL应用

这里已经假设SFUD代码已经移植到工程下面成功了&#xff0c;如果读者对SFUD移植还不了解。可以参考笔者这篇文章&#xff1a;SFUD (Serial Flash Universal Driver)之KEIL移植 这里主要介绍测试和应用 1 硬件设计 这里采用windbond 的W25Q32这款芯片用于SFUD测试。 W25Q32是…

【notes2】并发,IO,内存

文章目录 1.线程/协程/异步&#xff1a;并发对应硬件资源是cpu&#xff0c;线程是操作系统如何利用cpu资源的一种抽象2.并发&#xff1a;cpu&#xff0c;线程2.1 可见性&#xff1a;volatile2.2 原子性&#xff08;读写原子&#xff09;&#xff1a;AtomicInteger/synchronized…

ubuntu20.04搭建Fabric教程

本章节环境配置 ubuntu: 20.04 go&#xff1a;1.16.3 docker: 20.10.6 docker-compose: 1.27.2 fabric&#xff1a;2.2.0 fabric-ca: 1.4.9 一 搭建通道 新建工作目录 mkdir fabric && cd fabric配置go代理 go env -w GO111MODULEon ​ #更新下载包的镜像 go env …

一个简单的仓库出入库管理软件的流程是什么样的?有哪些功能?

身为仓库文员&#xff0c;我深知仓库管理对于公司运营的重要性。仓库是公司物资的中转站&#xff0c;其管理的好坏直接关系到公司的运营效率和成本控制。然而&#xff0c;传统的仓库管理方式往往存在着效率低下、易出错等问题&#xff0c;为了解决这些问题&#xff0c;我们需要…

视频剪辑:视频文件元数据修改工具,批量操作提升效率和准确性

在视频剪辑和后期处理的过程中&#xff0c;除了对视频本身的编辑和修改&#xff0c;元数据的管理和修改同样重要。元数据&#xff0c;如标题、艺术家、专辑封面等&#xff0c;不仅提供了视频文件的基本信息&#xff0c;还有助于更好地组织、搜索和共享视频内容。而针对视频文件…

SpringMVC简介和体验

一、SpringMVC简介和体验 1.1 介绍 Spring Web MVC :: Spring Framework Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#…

分享几个副业,一天搞100~200不成问题,一不小心收益比你主业还多

每次家庭聚会&#xff0c;总是那些老掉牙的话题在耳边萦绕&#xff1a;“孩子&#xff0c;你工资多少啊&#xff1f;买车买房了吗&#xff1f;”仿佛只有按部就班地上班、结婚生子&#xff0c;才是人生的唯一出路。 然而&#xff0c;在这个充满机遇的时代&#xff0c;谁说“不上…

2.5W字 一文读懂汽车智能座舱的FLASH 存储市场、技术

吃瓜群众&#xff1a;机哥&#xff0c;存储是什么玩意&#xff0c;我买手机、电脑的时候导购员都说买内存大的&#xff0c;三星的好&#xff0c;品牌大&#xff0c;问题少&#xff0c;我也只有看哪个内存大就买那个。 机哥&#xff1a;额&#xff0c;这个嘛&#xff0c;说来话长…