普中STM32-PZ6806L开发板(HAL库函数实现-无源蜂鸣器响动)

news2024/11/27 10:20:27

简介

本篇将驱动无源蜂鸣器进行5KHz的响动。

电路原理图

蜂鸣器电路原理图
在这里插入图片描述
主芯片驱动引脚原理图
在这里插入图片描述

其他知识

蜂鸣器类型

蜂鸣器分为
有源蜂鸣器 :触发就会响。
无源蜂鸣器 : 需要给源, 输出一定频率的音频信号, 震动发声;

占空比

为什么占空比总是50%呢?
当蜂鸣器的信号占空比较低时,即高电平时间较短,低电平时间较长。这时蜂鸣器的发声强度会较低,声音持续时间也较短。
当蜂鸣器的信号占空比较高时,即高电平时间较长,低电平时间较短。这时蜂鸣器的发声强度也会较高,但声音持续时间相对较短。因为蜂鸣器在高电平时间过长的情况下,虽然能够充分振动产生较大的声音,但声音传播时间变短,导致发声时间较短。这种情况下,蜂鸣器的声音更加尖锐和紧凑。- 来自 蜂鸣器发声强度与信号占空比的关系是怎么样的?
虽然查到的资料并没有说明占空比50%是绝对的, 除非你仔细测试研究了适合你蜂鸣器的占空比, 否则50%就是比较合适的, 本次实验也是在50%占空比的情况下进行测试的;

us延时

参考 普中STM32-PZ6806L开发板(HAL库函数实现-TIM2实现us延时),
本次使用us延时, 而不是PWM实现对应音阶频率, 需要用到us延时, 而系统提供的延时是ms级别的, 所以需要实现一个us的延时方式。

半周期

因为占空比是50%, 高低电平各一半, 半周期指的就是时间的一半

实现振动

如何实现振动, 浅意来说就需要实现波, 令蜂鸣片振动,从而发声, 无源蜂鸣器发声频率范围是在1.5KHz-5KHz, 所以实现这个范围的延时, T(时间s) = 1/f(Hz频率), 例如我要产生5KHz的音频信号, 时间是200us, 那半周期就是100us, 就是在

实现步骤

创建项目

参考 普中STM32-PZ6806L开发板(STM32CubeMX创建项目并点亮LED灯)

TIM2初始化

TIM2用来实现us级别的延时
初始化 参考 普中STM32-PZ6806L开发板(HAL库函数实现-TIM2实现us延时)

初始化蜂鸣器引脚

PB5 引脚设置为输出
在这里插入图片描述

添加用户代码

main.c

/*
 *  time : 执行次数
*/
void BEEP_5KHzAction(uint16_t time)
{
	while (time--)
	{
		HAL_GPIO_TogglePin(BEEP_PORT, BEEP_PIN); 
		delay_us(100); // 半周期100us
	}
}

int main()
{
...
while (1)
{
	BEEP_5KHzAction(1); 
}
...
}

代码

不需要下载, 基本代码上面都提供了

参考

普中STM32-PZ6806L开发板(HAL库函数实现-批量操作GPIO引脚实现跑马灯)
普中STM32-PZ6806L开发板(HAL库函数实现-TIM2实现us延时)

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

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

相关文章

lottie 动画在 vue 中的使用

前言 最近我所负责的项目中采用了动画效果,最早使用 gif 来实现。然而,在实践过程中,我发现 gif 格式的动画在 git 中出现了明显的锯齿感,这让我非常困扰。为了追求更完美的表现效果,我最终选择了 lottie 来实现我的动…

[每周一更]-(第79期):Apache代理的配置

反向代理逻辑类似Nginx,以下具体展示属于apache的配置和参数说明 局部代理配置方式: # 配置包含https的需要打开 SSLProxyEngine on ProxyPass /api/small https://api.web.com/version1/small/ ProxyPassReverse /api/small https://api.web.com/versio…

SAP MD04界面中增加功能按钮

通常在查看物料需求时,PMC用的最多的就是MD04的界面,在MD04界面中有很多的功能按钮,同时我们还可以新增功能按键的跳转。 1、我们先设置一下系统标准的在MD04界面中增加跳转的按钮 如下图:自有收藏夹—导航参数文件—维护 然后在MD04的界面中就可以看到我们刚才加的MM0…

3、Git分支操作与团队协作

Git分支操作 1.什么是分支2. 分支的好处3. 分支的操作3.1 查看分支3.2 创建分支3.3 切换分支3.4 修改分支3.5 合并分支3.6 产生和解决冲突 4. 创建分支和切换分支图解5. Git团队协作机制团队内协作跨团队协作 均在git bash中进行操作。事先建好本地工作库 1.什么是分支 在版本…

零代码也能玩出花:Mugeda在H5设计中的魔法力量

文章目录 一、Mugeda零代码可视化H5设计工具简介二、Mugeda零代码可视化H5设计实战案例1. 注册并登录Mugeda账号2. 选择模板3. 编辑页面内容4. 添加动画效果5. 预览和发布 三、Mugeda零代码可视化H5设计的优势《Mugeda零代码可视化H5设计实战》内容简介作者简介目录前言/序言 随…

首发卡密引流系统 支持短视频点赞/关注获取卡密

搭建教程: 环境要求:Nginx、MySQL 5.6、PHP 5.6 步骤: 将压缩包解压至网站根目录。 打开域名/install,按照提示填写数据库信息进行安装。 管理后台: URL:域名/admin 账号密码:admin/123456 …

程序员实现财富自由的十种方法!

程序员肯定都有过一夜暴富的梦想,也许是兼职接单,也许是成为炙手可热的大网红,也许只是平凡的中张百万大奖彩票…… 除去运气超好实力拔群以外,大多数程序员是很难在短时间内实现财富自由的。虽是如此,但搞钱对于程序…

Linux系统下隧道代理HTTP

在Linux系统下配置隧道代理HTTP是一个涉及网络技术的话题,主要目的是在客户端和服务器之间建立一个安全的通信通道。下面将详细解释如何进行配置。 一、了解基本概念 在开始之前,需要了解几个关键概念:代理服务器、隧道代理和HTTP协议。代理…

河南:女子一家八口住酒店223天,每天房费1000块,决定住一辈子

河南这家人可真是会享受生活啊!卖掉房子住酒店,一辈子不买房,每天只花1000块,这是你梦想中的生活吗?😂 他们一家人八口,从老到小,都住在酒店里。说真的,这可真是让人羡慕…

关于Echarts的重要属性总结

概要 1.设置图例字体颜色: legend: {//添加位置如下textStyle: {color: #fff // 设置图例文字颜色为白色}} 2.设置序列颜色: series: [{ // 添加位置如下itemStyle: { color: #FFA500 // 设置序列Series颜色}] 3.设置坐标轴单位: xAx…

分享好用的chatgpt

1.在vscode中,点击这个: 2.搜索:ChatGPT - 中文版,个人觉得这个更好用: 3.下载完成之后,左侧会多出来这个: 点击这个图标就能进入chatgpt界面了 4.如果想使用tizi访问国外的chatgpt&#xf…

Android apk安装包反编译——apktool工具

目录 一、apk 文件结构二、下载 apktool三、 使用 apktool 反编译 apk四、编译为apk五、apk签名1.生成密钥库2.使用 v1 签名3.使用 v2 签名 六、Dex 加解密原理 一、apk 文件结构 首先是 apk,即安卓程序的安装包。Apk 是一种类似于 Symbian Sis 或 Sisx 的文件格式…

Unity TextMeshPro中文字体的转换与显示

Unity TextMeshPro功能非常强大,但是我们用默认的字体格式却无法显示中文,必须把字体转换之后才能正常显示中文。 具体转换方法: 1、准备好字体,ttf或otf格式都可以,如:SOURCEHANSANSCN-NORMAL.OTF 2、准…

maven阿里源找不到指定jar包解决方案

到这里去找: https://mvnrepository.com/ 例如你要找:spring-boot-starter-web 复制坐标即可。IDEA会去坐标自带的网址寻找资源,可能会慢一点。

【Vue3】创建项目的方式

1. 基于 vue-cli 创建 ## 查看vue/cli版本,确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test本质上使用webpack,默认安装以下依赖: 2. 基于 vite 创建 官…

VLAN简介

在配置交换机或者传输设备时,经常会提到vlan,这个vlan具体是啥呢? VLAN(Virtual Local Area Network)中文名为“虚拟局域网”。它是一种在物理网络上划分出逻辑网络的方法,将物理上的局域网在逻辑上划分为多…

基于Java SSM框架实现人才小区公寓社区物业管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现人才小区公寓社区物业管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个人才公寓管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xff…

边缘计算网关在温室大棚智能控制系统应用,开启农业新篇章

项目需求 ●目前大棚主要通过人为手动控温度、控水、控光照、控风,希望通过物联网技术在保障产量的前提下,提高作业效率,降低大棚总和管理成本。 ●释放部分劳动力,让农户有精力管理更多大棚,进而增加农户收入。 ●…

vue2实现手写签批

手写签名 一、安装二、引入三、使用 vue-signature-pad 完成签批功能四、解构出data为base64编码的图片一、图片实现横屏 使用案例图 一、安装 npm i vue-signature-pad2.0.5 // vue2适用的版本二、引入 *mian.js* import VueSignaturePad from vue-signature-padVue.use(V…

AI时代下,如何看待“算法利维坦”?

ChatGPT的浪潮从2022年袭来后,至今热度不减,呈现出蓬勃发展的趋势。AI家居、医疗、教育、金融、公益、农业、艺术......AI真的已经走进了生活的方方面面,我们仿佛已经进入了AI时代,势不可挡。人工智能水平如此之高,不禁…