单片机-STM32部分:13-1、蜂鸣器

飞书文档https://x509p6c8to.feishu.cn/wiki/V8rpwIlYIiEuXLkUljTcXWiKnSc

一、应用场景

大部分的电子产品、家电(风扇、空调、电水壶)都会有蜂鸣器,用于提示设备的工作状态

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| | |

二、原理

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

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

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

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

蜂鸣器有正负极,顶部印有+号的为正极,若蜂鸣器引脚没剪,则长的为正极。

无源蜂鸣器的优点是:

  • 便宜
  • 声音频率可控,可以做出"多来米发索拉西"的效果

有源蜂鸣器的优点是:

  • 程序控制方便

三、接线图

加NPN型三极管进行驱动,因为单片机的引脚驱动能力有限,蜂鸣器的功率比较大,所以需要通过三极管来驱动,R2为限流电阻,单片机引脚如果给高电平,则三极管导通,VCC便给蜂鸣器供电,如果给低电平,则三极管断开

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| | |

原理图中,除了蜂鸣器和三极管外,还添加了二极管、电阻,主要是保护作用。

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| | |

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 续流二极管: 蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。 三极管: 三极管Q5起开关作用,其基极的低电平使三极管饱和导通,使蜂鸣器发声;而基极高电平则使三极管关闭,蜂鸣器停止发声。 电阻: R48为保护电阻,限流保护,R47为钳位电阻,避免设备启动时IO未知导致的蜂鸣器发声。 |

然后设置硬件对应的参数

配置PWM的具体参数,预分频系数为 72-1,自动重装载值为 500-1,定时器溢出频率,即PWM的周期,就是 72MHz/(72)/(500) = 2kHz 这里的72是因为从0开始计算到71,500同理。

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4); //开启PWM输出 __HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_4,250); //设置默认的占空比值 /* USER CODE END 2 */ |

工程参考飞书文档

相关推荐
于小猿Sup9 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
chao18984410 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
不会武功的火柴12 小时前
SystemVerilog语法(8)-有限状态机(FSM)
嵌入式硬件·fpga开发·自动化·ic验证·rtl·uvm方法学
猫猫的小茶馆13 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo12313 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站14 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
czhaii14 小时前
跟我动手学FX系列PLC GX2环境
嵌入式硬件
拾知_H15 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode16 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz17 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件