有源蜂鸣器和无源蜂鸣器的区别

本文详细介绍了有源蜂鸣器和无源蜂鸣器的主要区别,包括是否内置震荡源、价格差异、外形尺寸及应用特点等方面。通过对比帮助读者更好地理解两种蜂鸣器的工作原理和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有源蜂鸣器和无源蜂鸣器的区别

有源蜂鸣器通直流电就响!

1、有无震荡源,有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。

2、价格不同,有源蜂鸣器要比无源蜂鸣器贵,贵在里面多了震荡源。

3、两者其高度不同,有源蜂鸣器高度为9mm,而无源蜂鸣器高度为8mm。

4、优点不同,无源蜂鸣器的优点是:便宜,声音频率可控,可以做出多来米发索拉西的效果,在一些特例中,可以和LED复用一个控制口。有源蜂鸣器的优点是:程序控制方便。
脚距7.6mm

选项是标签颜色代表多少V的电压

TMB12A03-(红色标签)-代表3V

TMB12A05-(蓝色标签)-代表5V

TMB12A12-(黑色标签)-代表12V

蜂鸣器一体 5V有源 直流长音 !

### TMB12A05 蜂鸣器电路设计与应用方案 #### 一、TMB12A05 基本参数概述 TMB12A05 是一种常见的压片式有源蜂鸣器,其典型工作电压为 DC 3V 至 DC 5V[^1]。根据产品规格书描述,这种蜂鸣器内置振荡电路,无需额外提供方波信号即可发声。它的额定驱动电流约为 **30mA**,适合由外部电或电池供电。 --- #### 二、基于 TMB12A05 的基本驱动电路设计 为了安全可靠地驱动 TMB12A05 蜂鸣器,推荐采用三极管作为中间驱动器件。以下是具体的电路设计方案: ##### 1. 使用 NPN 三极管驱动的电路结构 ```plaintext 单片机 I/O 引脚 ---- 限流电阻 (Rb) ---- 三极管基极 (B) | 三极管发射极 (E) --- GND | 三极管集电极 (C) ---- 蜂鸣器正极 (+) | 蜂鸣器负极 (-) --- VCC (3.3V 或 5V) ``` - **三极管选择**: 推荐使用通用型 NPN 三极管如 BC547、2N2222 等。 - **限流电阻 Rb 计算**: 根据三极管的放大倍数 \( h_{FE} \),计算合适的基极电阻值。假设 \( h_{FE} = 100 \),则所需基极电流 \( I_B = \frac{I_C}{h_{FE}} = \frac{30\text{mA}}{100} = 0.3\text{mA} \)[^3]。对于 STM32 IO 口输出高电平约 3.3V,则限流电阻可取: \[ R_b = \frac{(V_{IO} - V_{BE})}{I_B} = \frac{(3.3 - 0.7)}{0.0003} ≈ 8.6kΩ \] ##### 2. 驱动逻辑解释 当单片机 I/O 输出高电平时,三极管导通,蜂鸣器两端获得足够的电流并发出声音;反之,当 I/O 输出低电平时,三极管截止,蜂鸣器停止发声[^3]。 --- #### 三、实际应用场景中的注意事项 1. **电适配性** 如果系统中存在多个不同电压等级的设备,需注意蜂鸣器的工作电压范围。例如,TMB12A05 支持 3V 到 5V 输入,因此可以直接连接至 3.3V 或 5V 电[^1]。 2. **电磁干扰防护** 蜂鸣器在运行过程中会产生一定的高频噪声,可能影响其他敏感电路。建议在其电端加入滤波电容(如 0.1μF 10μF 并联),以减少纹波干扰[^5]。 3. **软件控制优化** 对于周期性的报警提示功能,可以通过定时器中断配合 PWM 波形生成模块实现更灵活的声音模式调节[^4]。 --- #### 四、代码示例:STM32 控制 TMB12A05 发声 以下是一个简单的 STM32 HAL 库代码片段,用于触发蜂鸣器短促鸣叫效果: ```c #include "stm32f1xx_hal.h" void Buzzer_Init(void){ GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用GPIOA时钟 GPIO_InitStruct.Pin = GPIO_PIN_5; // PA5 连接到蜂鸣器控制引脚 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); } void Buzzer_Toggle(uint16_t duration_ms){ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // 打开蜂鸣器 HAL_Delay(duration_ms); // 持续时间 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);// 关闭蜂鸣器 } ``` 调用 `Buzzer_Toggle(500)` 即可在 500ms 时间内让蜂鸣器发声。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值