当前位置: 首页 > news >正文

『51单片机』蜂鸣器

  • 🚩 WRITE IN FRONT 🚩       

  • 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
  • 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量8w+、个人社区人数累计4w+、全网访问量100w+ 🏅
  • 🆔 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠
  • 📑 创作时间:2022 年 11 月 2 日 📅
  • 📝 个人主页:謓泽的博客 📃
  • 📣 专栏系列:【51单片机】系列_謓泽的博客📃
  • 🙌 Gitee:謓泽 (wsxsx) - Gitee.com ⭐️
  • 🎁 点赞👍+ 收藏⭐️+ 留言📝​
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 📩

简介

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

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

有源蜂鸣器:内部自带振荡源,将正负极街上直流电压(达到要求)即可持续发出声音,频率固定的。

无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可以持续发出声音。调整提供脉冲的振荡脉冲频率可以发出不同频率的声音的(设计的时候不能让无源蜂鸣器一直处于通电状态当中)开发板使用的就是无源蜂鸣器。

注→蜂鸣器只能发出一种鸣叫的声音(音色是只有一种的不能发出像其它乐理的声音)

驱动电路

NPN三极管⇢高电平触发。

PNP三极管⇢低电平触发。

注→在三极管的基极信号当中,这里的基极电阻的范围1k~10k都是可以的。

集成电路驱动:VCC连接了一个电阻再连接到蜂鸣器的一根引脚另一个脚的(BZ)的网络编号另一头连接到了五线四相步进电机(ULN2003)连接到OUT5(BZ)P15是单片机的引脚相当于控制信号。注:在这里的话给P15(高电平"1")的话是有驱动的,原因是里面有一个(非门)如下图原理图所示↓那么我们要让我们的单片机蜂鸣器响应也非常的简单我们给BZ低电平即可。

UN2003()﹣达令顿管阵列

乐理 

在学习蜂鸣器的同时我们也需要掌握一些基础的乐理这样我们就可以使用蜂鸣器来演奏不同的歌曲了。下面是钢琴键盘的无限谱对照表如下↓

降记号(b)表示将基本音级的音高降低半音,根据该记号所在的线或间而降音。

还原记号:表示把已经升高或降低的音还原。

升记号(#)表示将基本音级的音高升高半音,根据该记号所在的线或间而降音。

如下是音符,像我们最熟知的小⭐⭐基本以四分音符为一拍的。

我们可以列一个时间的基准值假设为0.5(s)那么二分音符就是1s、全音符就是2s。八分音符就是0.25(s)依次类推,从上述我们观察可以得出都是以2倍为β倍的。

红色框线中向上弯曲的曲线叫延音线,它可以将两个或两个以上相同音高的音符相连,在钢琴演奏时作爲一个音符,它的拍值等于这些音符的拍值总和。当然延音线也可以用向下弯曲的曲线表示。

音频与频率对照表 

通过上述的音频与频率对照表根据频率(HZ)的值可以控制定时器产生相应频率的计时。如何用单片机产生频率就可以用定时器+中断。

周期的单位(s):T = 1/f(频率) 由于转换的时间单位数值比较小(s)单位的话,那么我们把周期时间单位转换成(us)乘以10^6次方。

注⇢在这里周期/2(us)是因为一个周期的占空比是(50%)也就是半个周期的高电平以及半个周期的低电平。重装载值就是定时器当中计数值在这里总数是65535us减去的数字是溢出差值这个就是决定了它的一个音调频率的一个值了。在写程序的时候我们可以把这些存放进数组当中去。然后获取相对应的值放到定时器中断当中即可。如果对这个定时器不熟悉或者是忘了的话可以看博主前面的文章哟(●'◡'●)

蜂鸣器发声

让蜂鸣器响应发声的话特别容易我们只需要把IO口翻转一下即可。

#include <REGX52.H>
sbit Buzzer = P1^5;
int main(void)
{Buzzer=!Buzzer;
}

显然上述代码是不允许让蜂鸣器持续发生的,因为我们只是翻转了一次IO口相当于没有发出声音。所以我们需要用到循环和延迟保证让它翻转的时间够长。如下代码所示↓

#include <REGX52.H>
sbit Buzzer = P1^5;
void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}
int main(void)
{unsigned int i;while(1){for(i=0;i<500;i++){Buzzer=!Buzzer;Delay(1);}}
}

在上述代码当中是每隔1ms可以翻转一次IO口电平。

周期时间为高电平1ms低电平1ms一个周期时间为2ms。频率f=1/T=500HZ。

这里循环1次是1ms。那么这里的i<500就会以500HZ的频率响应500ms。

同理如果我们改成i<100的话会以100HZ的频率响应100ms。

Buzzer模块化

#include <REGX52.H>
#include <INTRINS.H>//蜂鸣器端口:
sbit Buzzer=P1^5;/*** @brief  蜂鸣器私有延时函数,延时500us* @param  无* @retval 无*/
void Buzzer_Delay500us()		//@12.000MHz
{unsigned char i;_nop_();i = 247;while (--i);
}/*** @brief  蜂鸣器发声* @param  ms 发声的时长(ms),范围:0~32767* @retval 无*/
void Buzzer_Time(unsigned int ms)
{unsigned int i;for(i=0;i<ms*2;i++){Buzzer=!Buzzer;Buzzer_Delay500us();//f=1/1ms=1000HZ,一个时间周期翻转两次。}
}

相关文章:

『51单片机』蜂鸣器

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

计算机视觉 | 基于二值图像数字矩阵的距离变换算法

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本实验基于 OpenCV 实现了二值图像数字矩阵的距离变换算法。首先生成一个 480x480 的黑色背景图像&#xff08;定义黑色为0&#xff0c;白色为1&#xff09;&#xff0c;在其中随机选择了三个白色像素点作为距离变换的原点&…...

Arcgis windows webadaptor配置

注意windows下安装细节 1、电脑必须添加限定域名及dns后缀。 准备工作 a、安装webadaptor&#xff0c;获取jar文件 b、tomcat中部署两个jar&#xff0c;名字不相同&#xff0c;一个用server配置&#xff0c;一个用于portal配置 c、geoserver用来配置server d、geoscene用来配置…...

对接阿里云实时语音转文字的思路

将上述概念转化为详细代码需要一定的步骤。这里&#xff0c;我们将根据之前讨论的服务划分&#xff0c;创建一个简化的框架来模拟这个流程。注意&#xff0c;由于空间限制和简化目的&#xff0c;某些实现细节会被省略或简化&#xff0c;你可能需要根据实际情况进行调整。 1. 配…...

如何转行成为产品经理?

转行NPDP也是很合适的一条发展路径&#xff0c;之后从事新产品开发相关工作~ 一、什么是NPDP&#xff1f; NPDP 是产品经理国际资格认证&#xff0c;美国产品开发与管理协会&#xff08;PDMA&#xff09;发起的&#xff0c;是目前国际公认的唯一的新产品开发专业认证&#xff…...

SpringCloudAlibaba-整合nacos(二)

目录地址&#xff1a; SpringCloudAlibaba整合-CSDN博客 一、nacos服务部分 1.下载nacos&#xff0c;并执行数据库脚本&#xff1a;nacos-mysql.sql 2.修改配置文件&#xff0c;配置mysql 3.启动nacos ./startup.sh -m standalone 4.访问&#xff1a;http://127.0.0.1:884…...

STM32H7通用定时器计数功能的使用

目录 概述 1 STM32定时器介绍 1.1 认识通用定时器 1.2 通用定时器的特征 1.3 递增计数模式 1.4 时钟选择 2 STM32Cube配置定时器时钟 2.1 配置定时器参数 2.2 配置定时器时钟 3 STM32H7定时器使用 3.1 认识定时器的数据结构 3.2 计数功能实现 4 测试案例 4.1 代码…...

信息系统项目管理师0044:IT治理方法与标准(3信息系统治理—3.1 IT治理—3.1.4 IT治理方法与标准)

点击查看专栏目录 文章目录 3.1.4 IT治理方法与标准1. ITSS中1T服务治理 3.1.4 IT治理方法与标准 考虑到IT治理对组织战略目标达成的重要性&#xff0c;国内外各类机构持续研究并沉淀IT治理相关的最佳实践方法、定义相关标准&#xff0c;这里面比较典型的是我国信息技术服务标准…...

探索Linux:在VMware虚拟机上安装Linux操作系统

探索Linux&#xff1a;在VMware虚拟机上安装Linux操作系统 在计算机领域&#xff0c;Linux操作系统以其稳定性、安全性和自由开源的特点备受青睐。通过在VMware虚拟机上安装Linux&#xff0c;您可以轻松体验Linux操作系统的强大功能。本文将详细介绍在VMware虚拟机上安装Linux…...

JavaScript进阶6之函数式编程与ES6ESNext规范

函数式编程 柯里化currycurrycompose示例&#xff1a;简化版展开写&#xff1a; debug示例一&#xff1a;示例二&#xff1a; 模板字符串css in js方案 箭头函数问题 生成器 generator应用场景 反射 Reflect 柯里化curry compose是curry的应用 在 lodash/fp underscore ramba …...

AcWing 1381. 阶乘

解题思路 最后一位数相乘的变化。注意&#xff1a;为什么不是ss%10&#xff0c;如果12 * 15&#xff0c; 12的最后一位时2&#xff0c; * 1530&#xff0c;则为3&#xff0c;问题是12*15180&#xff0c;为8&#xff0c;两 者不符&#xff0c;说明ss%10中的10要多加0. import j…...

Leetcode 394. 字符串解码

心路历程&#xff1a; 这道题看到括号直接想到栈&#xff0c;五分钟新题直接秒了&#xff0c;一开始以为需要两个栈分别存储数字和非数字&#xff0c;后来发现一个栈就够了&#xff0c;思路如图&#xff1a; 这道题考察的应该是队栈这两种数据结构的转换&#xff0c;因为每次…...

LeetCode - 1702. 修改后的最大二进制字符串

文章目录 解析AC CODE 题目链接&#xff1a;LeetCode - 1702. 修改后的最大二进制字符串 解析 详细题解&#xff1a;贪心&#xff0c;简洁写法&#xff08;Python/Java/C/Go/JS/Rust&#xff09; 思路很牛b。 简单来说我们需要想办法将0配对&#xff0c;将其变为10&#xff0…...

虹科Pico汽车示波器 | 免拆诊断案例 | 2011款东风悦达起亚K5车发动机偶尔起动困难

一、故障现象 一辆2011款东风悦达起亚K5车&#xff0c;搭载G4KD发动机&#xff0c;累计行驶里程约为24.5万km。车主反映&#xff0c;第1次起动发动机时偶尔无法起动着机&#xff0c;第2次能够正常起动着机&#xff0c;但发动机故障灯异常点亮。为此在其他维修厂维修过&#xf…...

Docker- Redis

博文目录 文章目录 说明前置命令 说明 Docker Hub Redis 数据卷数据卷印射在容器内的路径redis/data 容器内的路径说明/data数据目录/data/redis.conf配置文件 前置 在 GitHub 找一份 redis.conf 配置文件, 放到卷 redis 中, 按需修改 # bind 127.0.0.1 # 解除只允许环回地…...

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果 一、简单介绍 二、简单指定视频某片段快放效果实现原理 三、简单指定视频某…...

数据结构——线性表(链式存储结构)

语言&#xff1a;C语言软件&#xff1a;Visual Studio 2022笔记书籍&#xff1a;数据结构——用C语言描述如有错误&#xff0c;感谢指正。若有侵权请联系博主 一、线性表的逻辑结构 线性表是n个类型相同的数据元素的有限序列&#xff0c;对n>0&#xff0c;除第一元素无直接…...

面试算法-169-二叉树的中序遍历

题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 解 class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> resul…...

计算机视觉——引导APSF和梯度自适应卷积增强夜间雾霾图像的可见性算法与模型部署(C++/python)

摘要 在夜间雾霾场景中&#xff0c;可见性经常受到低光照、强烈光晕、光散射以及多色光源等多种因素的影响而降低。现有的夜间除雾方法常常难以处理光晕或低光照条件&#xff0c;导致视觉效果过暗或光晕效应无法被有效抑制。本文通过抑制光晕和增强低光区域来提升单张夜间雾霾…...

git bash用法-批量修改文件名

在win系统上安装git bash可以使用命令行模式操作&#xff0c;比较方便 1.原始文件名 2.代码 for file in *3utr*; do mv "$file" "$(echo "$file" | sed s/3utr/5utr/)"; done3.修改后的文件名...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...