蜂鸣器—STM32驱动有源与无源蜂鸣器的介绍与代码示例

目录

蜂鸣器介绍

模块接线

 有源蜂鸣器

驱动代码

buzzer.h

buzzer.c

无源蜂鸣器

for循环+delay延时实现方波信号

p_buzzer.h

p_buzzer.c

main.c

定时器PWM驱动的代码

p_buzzer.h

p_buzzer.c

main.c


蜂鸣器介绍

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

蜂鸣器按其结构可分为电磁式蜂鸣器和压电式蜂鸣器两种类型。

电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳组成。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器以及共鸣箱、外壳等组成。压电式蜂鸣器是以压电陶瓷的压电效应,来带动金属片的振动而发声;而电磁式蜂鸣器则是用电磁的原理,通电时将金属振动 膜吸下,不通电时以振动膜的弹力弹回。由于两种蜂鸣器发声原理不同,电压式结构简单耐用但音调单一、音色差,适用于报警器等设备;而电磁式由于音色好,所以多用于语音、音乐等设备。

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

左为有源蜂鸣器,右为无源蜂鸣器

区别

有源蜂鸣器

无源蜂鸣器

外形高度

引脚部位

黑胶封闭

绿色电路板

电压

响声

连续发声

响一次停一次

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

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

注:人耳可以听到的声音频率在20Hz~20kHz之间的声波

模块接线

vcc接工作电压,Gnd接地,信号线接单片机IO口。

GPIO口驱动能力弱,不能直接驱动无源蜂鸣器,使用用三极管开关。

有源:低电平触发就是IO口输入为0就可发声。

无源:低电平时间在一个周期内越长声音越响。

 有源蜂鸣器

 有源蜂鸣器内部包含一个振荡电路,能将恒定的直流电转化为一定频率的脉冲信号,从而实现磁场交变,带动蜂鸣器振动发音。它不需要额外的驱动电路,只要接通直流电源即可工作

TMB12A05电磁式蜂鸣器采用直流电压供电,发声频率为2.4Khz(不可改变)。

驱动代码

该模块与单色LED模块驱动代码一样,将LED改成Buzzer即可

注意:

1.蜂鸣器的触发方式         2.撕掉蜂鸣器贴纸有惊喜!!!

buzzer.h

#ifndef             _BUZZER_H_
#define				_BUZZER_H_
 
#define Buzzer_ON      0
#define Buzzer_OFF     1   
 
void Buzzer_Init(void);
 
void  Buzzer_SetON(void);
 
void  Buzzer_SetOFF(void);
 
void Buzzer_Turn(void);
#endif
 

buzzer.c

#include "stm32f10x.h"                  // Device header
#include "Buzzer.h"
 
void Buzzer_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
 
	GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
	
	//GPIO默认输出低电平
	GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)Buzzer_OFF);	//输出高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0)
 
}
void  Buzzer_SetON(void)
{
	GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)Buzzer_ON);	
}
 
void  Buzzer_SetO
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值