驱动蜂鸣器

目录

1、蜂鸣器:

2.硬件电路:

3.接线图

4、实现代码


1、蜂鸣器:

  • 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定
  • 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音

2.硬件电路:

需要注意,PNP的三极管最好接在上边,NPN的三极管最好接到下边,这是因为三极管的通断是需要在发射极和基极产生一定的开启电压的,如果将负载接在发射极这边,可能会导致三极管不能开启。

下图为PNP三极管的驱动电路,三极管的左边是基极,带箭头的是发射极,剩下的是集电极。左边的基极给低电平,三极管就会导通,再通过3.3V和GND就可以给 蜂鸣器提供驱动电流了。基极给高电平,三极管截止,蜂鸣器没有电流。

下图为NPN三极管的驱动电路,同样,左边是基极,带箭头的是发射极,剩下的是集电极;它的驱动逻辑和上面的是相反的,基极给高电平导通,低电平断开。

3.接线图

4、实现代码

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    GPIO_InitTypeDef   GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出//高低电平都有驱动能力
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;//按位或
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStructure);
	while (1)
	{
       GPIO_ResetBits(GPIOB,GPIO_Pin_12);//低电平输出
       Delay_ms(500);
       GPIO_SetBits(GPIOB,GPIO_Pin_12);
       Delay_ms(500);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值