蜂鸣器实验

admin 2025-02-09 183人围观 ,发现224个评论

一,了解蜂鸣器(Buzzer)

蜂鸣器是一种电子发声元器件,可以发出"beepbeep"的声音.采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器在电路中用字母“FM”、“H”或“HA”或“ZZG”、“LB”、“JD”等表示。

蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。

有源蜂鸣器与无源蜂鸣器的区别:内部有否震荡源

注意:这里的“源”不是指电源,而是指震荡源。

有源蜂鸣器内部带震荡源,所以只要一通电就会叫;

无源蜂鸣器内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的波形脉冲信号去驱动它

有源蜂鸣器往往比无源的略贵,就是因为里面多个震荡电路。

从外观上看,两种蜂鸣器好像一样.一般有源有源蜂鸣器比无源蜂鸣器厚一点.

但是,从外观上并不能绝对的区分出有源与无源,最可靠的做法除了查看产品的参数手册以外.另一种方式是使用万用表测试蜂鸣器电阻,只有8Ω或者16Ω的是无源蜂鸣器,电阻在几百欧以上的是有源蜂鸣器。

1,准备元器件和器材

无源蜂鸣器一个

面包板一块

PNP型三极管(型号8550)一个

1K电阻一个

杜邦线若干

2,蜂鸣器驱动电路原理图

蜂鸣器元件需要通过一个驱动电路接在单片机上.典型的驱动电路原理图如下:

上述电路中用一个PNP型三极管做为控制开关,图中FM是蜂鸣器

三极管C极接GND,E极接蜂鸣器的负端,三极管的B极通过一只1K-2K的电阻到单片机的GPIO脚.蜂鸣器的正端接VCC.

该电路中三极管相当于一个开关,运行原理如下:

1,当GPIO输出高电平,三极B极与E极间没有电压差,三极管E极与C极间不通,蜂鸣器FM没有电流通过,蜂鸣器不响。

2,当GPIO输出低电平,三极B极与E极间形成电压差,三极管E极与C极之间导通,电流通过蜂鸣器FM,如果是有源蜂鸣器,则立即发出beep声。

(1)三极管型号为8550,其引脚如下图:

如图所示,

1脚=E(发射极,电路图中带箭头的那个)

2脚=B(基极,电路图中跟R相接的那个)

3脚=C(集电极,与E相对的那个)

(2)蜂鸣器有两个脚有源蜂鸣器是一通电就响的,两个脚分别是正负极,两个脚一长一短,短脚为负极,长脚为正极接VCC.本例用的是无源蜂鸣器。

而无源蜂鸣器的是需要波形信号驱动的,两个脚没有正负极。

用面包板接线

把三极管,蜂鸣器,电阻插入面包板,按上述电路原理图,用杜邦线接线,接线如下图:

蜂鸣器的正极(长脚)接5V,负极(短脚)接三极管E极

三极管B极接1K欧姆电阻,再接到ArduinoD3脚

三极管C极接地

写入以下程序

voidsetup(){

pinMode(3,OUTPUT);

}

voidloop(){

tone(3,400);//频率400

delay(1000);

tone(3,1000);//频率1000

delay(1000);

tone(3,600);

delay(1000);

tone(3,300);

delay(1000);

}

这里,我们用到了一个内置程序,tone(pin,p)。pin代表输出脚,p代表输出频率。

tone()函数可以产生固定频率的PWM信号来驱动扬声器发声。发声时间长度和声调都可以通过参数控制。定义发声时间长度有两种方法,第一种是通过tone()函数的参数来定义发声时长,另一种是使用noTone()函数来停止发声。如果您在使用tone()函数时没有定义发声时间长度,那么除非您通过noTone()函数来停止声音,否则Arduino将会一直通过tone()函数产生声音信号。

Arduino一次只能产生一个声音。假如Arduino的某一个引脚正在通过tone()函数产生发声信号,那么此时让Arduino使用另外一个引脚通过tone()函数发声是不行的。

请注意:

1.对于ArduinoMega以外的控制器,使用tone()函数时会影响引脚3和引脚11的PWM信号输出。

2.如果你想要使用不同的引脚产生不同的声音音调,每一次更换发声引脚以前都要使用noTone函数停止上一个引脚发声。Arduino是不支持两个引脚同时发声的。

各种蜂鸣器都有适用的频率,在这个频率下,发生最大。读者可以从4000的频率试用,更改频率直到声音合适。

猜你喜欢
    不容错过