2016年网站推广方法,做网站要多少钱联系方式,做集群网站,公司网站建设推荐目录 前言硬件介绍PWM基础蜂鸣器简介 原理图分析蜂鸣器驱动电路 软件实现蜂鸣器短鸣蜂鸣器功能封装 总结 前言
蜂鸣器在生活中的应用实则相当广泛。通过本章你将学会制造噪声 #xff08;笑~#xff09;你将学会驱动它们#xff0c;并发出响声。 硬件介绍
PWM基础
占空比… 目录 前言硬件介绍PWM基础蜂鸣器简介 原理图分析蜂鸣器驱动电路 软件实现蜂鸣器短鸣蜂鸣器功能封装 总结 前言
蜂鸣器在生活中的应用实则相当广泛。通过本章你将学会制造噪声 笑~你将学会驱动它们并发出响声。 硬件介绍
PWM基础
占空比 频率
延时实现 定时器实现 蜂鸣器简介
蜂鸣器的英文为Buzzer是将电信号转化为音频信号的基本电子器件。蜂鸣器有无源蜂鸣器和有源蜂鸣器两种。
无源蜂鸣器即压电式蜂鸣器。内部不带振荡源须提供脉冲信号驱动。通过改变频率调节音调高低改变占空比调节音量大小。有源蜂鸣器即电磁式蜂鸣器。内部自带振荡源只需通直流电即响驱动简单但频率固定。
这里的源与电源无关指的是内部是否有振荡源。有源蜂鸣器通常用于只需要发出响声的场景如按键音、报警器等等。无源蜂鸣器由于可以改变电压可以应用于电子琴、变声器中。
图1 无源蜂鸣器 图2 有源蜂鸣器 判断有源无源的方法
用万用表测试 无源蜂鸣器电阻大致为10Ω左右。对于脉冲信号才能发声。有源蜂鸣器电阻大致为几百欧姆。且接通持续发声。 看表面封装 无源蜂鸣器一般都是无贴纸标识。有源蜂鸣器一般都是有贴纸标识。 原理图分析
蜂鸣器驱动电路
一般IO输出电流小于20mA不能直接驱动蜂鸣器需要相应的驱动电路一般利用三级管的放大和开关作用驱动蜂鸣器。
如图所示R1用于限制基极电流R2用于限制蜂鸣器电流8550为PNP型三极管当IO引脚为低电平时导通。
对于有源蜂鸣器而言IO引脚输出低电平就能持续发声。 对于无源蜂鸣器而言需要IO引脚输出PWM脉冲信号来使之发声。 软件实现
蜂鸣器短鸣
#include REG52.H#define DELAY_TIME 100typedef unsigned char u8;
typedef unsigned int u16;sbit BEEP P1^5; //信号端与P1.5引脚相连void delay(u16 i){while(i--);
}void main(){u8 i 0;while(1){while(i DELAY_TIME){BEEP !BEEP; //内部上拉初始为1占空比为50%delay(100); //延时1ms周期2ms即频率为500Hzi;}}
}通过调节不同的频率可以得到不同音调的声音调节占空比可以控制音量高低。 蜂鸣器功能封装
delay.h
#ifndef _DELAY_H_
#define _DELAY_H_#include regx52.htypedef unsigned char u8;
typedef unsigned int u16;void delay_10us(u16);
void delay_ms(u16);#endifdelay.c
#include delay.h/*** brief 延时函数(10us)* param t:0~65535循环一次约10us* retval 无*/
void delay_10us(u16 t){while(t--);
}/*** brief 延时函数ms* param t:0~65535,单位ms* retval 无*/
void delay_ms(u16 t){while(t--){delay_10us(100);}
}beep.h
#ifndef _BEEP_H_
#define _BEEP_H_#include delay.hsbit BEEP_PORT P1^5;void beep_once(u8, u16);#endifbeep.c
#include beep.h/*** brief 蜂鸣器单响* param t 持续时长, fre 频率HZ* retval*/
void beep_once(u8 t, u16 fre){while(t--){BEEP_PORT !BEEP_PORT; // 取反delay_10us(1e5/2/fre);}
}main.c
#include beep.hvoid main(){// 以1000Hz频率50%占空比持续时间约1sbeep_once(100, 1000);while(1);
}蜂鸣器本身的控制很简单它也经常和其他元器件一起搭配使用。 总结
本章相对轻松了解了蜂鸣器的主要类别与驱动方式。还学习了PWM的基本原理。继续加油