【硬件基础】有源蜂鸣器与无源蜂鸣器

本文详细介绍如何区分有源蜂鸣器与无源蜂鸣器,包括外观特征、万用表检测方法及驱动原理。无源蜂鸣器需外部振荡源驱动,而有源蜂鸣器内置振荡源,通电即响。

辨别方法

外观:

无源蜂鸣器:

有源蜂鸣器:

注:可以看到底部有绿色电路板的是无源蜂鸣器,底部是黑胶的为有源蜂鸣器

万用表电阻档检测

无源蜂鸣器:发出咔、咔声的且电阻只有8Ω(或16Ω)。

有源蜂鸣器:发出持续声音的,且电阻在几百欧以上。

频率:

无源蜂鸣器:不能通过直流电源驱动,应使用2K~5K的方波去驱动,通过改变方波的频率改变蜂鸣器的频率。

有源蜂鸣器:内部已经配置好了,给电就响。

有源无源:

注意:有无源并不是指的有没有电源而是有无内部振荡源

 

proteus中使用:

active buzzer: 有源蜂鸣器

device buzzer:无源蜂鸣器

### 有源蜂鸣器和无蜂鸣器的工作原理及区别 #### 工作原理 - **有源蜂鸣器** 有源蜂鸣器内部集成了振荡,因此只需施加直流电压即可发声。其工作过程是通过内置的振荡系统将输入的直流电转换为音频信号,在谐振装置的作用下产生声音[^2]。由于振荡的存在,有源蜂鸣器能够直接发出固定的频率声音。 - **无蜂鸣器** 无蜂鸣器本身不包含振荡,仅是一个简单的电磁或压电驱动装置。要使其发声,外部控制器需提供特定频率的方波信号作为激励。只有当输入信号的频率匹配蜂鸣器的设计共振频率时,才能正常发声[^3]。 #### 主要区别 | 特性 | 有源蜂鸣器 | 无蜂鸣器 | |-----------------|------------------------------------|--------------------------------| | 是否含振荡 | 是 | 否 | | 输入信号 | 直流电压 | 方波信号 | | 发声条件 | 施加直流电压即发声 | 需要外部提供合适频率的方波 | | 声音特性 | 固定频率、单一音调 | 可调整频率,支持多种音调 | | 控制难度 | 较简单 | 较复杂 | | 成本 | 较高 | 较低 | #### STM32代码示例 以下是基于STM32平台分别控制有源蜂鸣器和无蜂鸣器的代码实现: ##### 控制有源蜂鸣器 对于有源蜂鸣器,只需配置GPIO输出高低电平即可。 ```c // 初始化GPIO引脚 GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // 输出高电平使蜂鸣器发声 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_SET); ``` ##### 控制无蜂鸣器 对于无蜂鸣器,则需要生成指定频率的PWM信号来驱动。 ```c TIM_HandleTypeDef htim; void MX_TIM2_Init(void) { TIM_OC_InitTypeDef sConfigOC = {0}; __HAL_RCC_TIM2_CLK_ENABLE(); htim.Instance = TIM2; htim.Init.Prescaler = 80 - 1; // 设置预分频值 htim.Init.CounterMode = TIM_COUNTERMODE_UP; htim.Init.Period = 999; // 自动重装载值对应周期 HAL_TIM_PWM_Init(&htim); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 500; // 占空比设置 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; HAL_TIM_PWM_ConfigChannel(&htim, &sConfigOC, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_1); // 开始PWM输出 } ``` 以上代码展示了如何利用STM32微控制器分别操作两种类型的蜂鸣器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值