小白上路之51单片机(STC89C52)--蜂鸣器ULN2003

    技术2022-08-11  103

    目录

    蜂鸣器介绍无源蜂鸣器:带有电路板(51单片机实验板stc89c52)有源蜂鸣器:无电路板而用黑胶封闭 工作原理电磁式蜂鸣器(有源):自激蜂鸣器(有源):压电式蜂鸣器(无源): 开发板上的原理图源程序--蜂鸣器发声扩展


    蜂鸣器介绍

    无源蜂鸣器:带有电路板(51单片机实验板stc89c52)

      不含振荡电路。单输出一个电平是不能控制使其发声的,须通过一定频率的脉冲来触发,才能使其发声。

    有源蜂鸣器:无电路板而用黑胶封闭

      内部含有振荡器等电路。通过单片机的管脚,然后经过电流放大,电路直接通过高低电平来控制。(由于单片机的管脚驱动能力是有限的,因此不能用管脚直接驱动蜂鸣器,也无法驱动,须要经过电流放大,才能驱动控制。) 注:此处的有源与无源并非指有无电源,而是指是否含有振荡电路。

    工作原理

    电磁式蜂鸣器(有源)

      由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成;   接通电源后,振荡器产生的音频信号电流通过电磁线圈,使其产生磁场,振动膜片在电磁线圈和磁铁的作用下,周期性发声。

    自激蜂鸣器(有源)

      由直流电压驱动,不需要利用交流信号来进行驱动,只需对驱动口输出驱动电平并通过放大电路来放大驱动电流即可使蜂鸣器发声。

    压电式蜂鸣器(无源)

      由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成;   接通电源后,多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

    开发板上的原理图

      由该原理图可得,开发板采用无源蜂鸣器,通过一个限流电阻与VCC相连,另一个管脚与ULN2003D芯片(NPN达林顿管)上的P15接口相连。也就是说,BEEP管脚是通过单片机P15接口,经过ULN2003D驱动芯片输出到蜂鸣器中,而ULN2003D芯片则起到电流放大的作用——单片机的P15端口输出一个高电平,则NPN三极管处于导通状态,于是蜂鸣器得电从而发声。   要让其发声,也可使用以下电路:   这样也可以驱动有源或是无源蜂鸣器:   该三极管(PNP)与电阻构成了一个电流放大。   若是有源蜂鸣器,只需要单片机的P15端口输出一个低电平,则VCC通过发射极到基极就是导通状态,于是电流流入蜂鸣器中,使其发声;而当P15端口输出一个高电平,则三极管就是截止状态,蜂鸣器就不会得电,即蜂鸣器被关闭。   若是无源蜂鸣器,则上述过程(仅给低电平)无法使其发声,须给一定频率的脉冲(高低电平),让蜂鸣器产生一定频率的振荡。

    源程序–蜂鸣器发声

    #include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; sbit beep=P1^5; void delay(u16 i) { while(i--); } void main() { //开发板上为无源蜂鸣器-->给一定频率的脉冲才可驱动(即高低电平的不断按周期性变换,周期即可用延时来产生) //do, re, mi,fa,so,la,xi,do //115,102,91,86,77,68,61,57 while(1) { beep=~beep;//将电平取反:P15端口具有上拉,上拉电阻默认为高电平,输入到IN5,则输出为低电平;在while循环中不断有高低电平的变换,则产生脉冲 delay(115);//改变周期-->音色 } }

    扩展

    1、调整控制蜂鸣器的音调,产生不同音色和音调的声音   方法:改变单片机引脚输出波形的频率 2、控制蜂鸣器声音的大小   方法:改变输出电平的高低电平占空比

    根据扩展内容,可利用单片机实现一个简易的电子琴~ 这就留到后面做一个综合小项目,下次再更吧~

    Processed: 0.037, SQL: 9