蜂鸣器按照驱动方式可分为有源蜂鸣器和无源蜂鸣器。这里的有源和无源不是指有无电源,而是指有无振荡源。有源蜂鸣器内部自带了振荡源,如此直接给电平就可以驱动它发声。而无源蜂鸣器内部是不带振荡源的,要让它响必须给500Hz~4.5KHz 之间的脉冲频率信号来驱动它才会响。无源蜂鸣器的声音频率是可以控制的,而音阶与频率又有确定的对应关系,因此可以做出来“do re mi fa so la si”的效果。

用proteus中buzzer分为两种: buzzer active DC Operated Buzzer-output Via Sound Card buzzer device Generic buzzer symbol 第一种是有源蜂鸣器,通过直流操作由声卡发声。 第二种为通用蜂鸣器。

只是为了让蜂鸣器发出声音,那么 1、我们就选择操作简单的有源蜂鸣器; 2、调整蜂鸣器的驱动电压,双击蜂鸣器将默认的 12V 改为 2V。 3、通过三级管来驱动蜂鸣器发声,电阻值不能过大(默认的电阻值10K太大,改为1K即可)电阻值也不能过小。 由三级管驱动蜂鸣器有两种,如图:

  • 利用PNP驱动buzzer

Proteus仿真之BUZZER 不响_proteus

  • 利用NPN驱动buzzer

Proteus仿真之BUZZER 不响_蜂鸣器_02


关于三级管的用法有句口诀

箭头朝内PNP,导通电压顺箭头过,电压导通,电流控制。

所以三级管的用法,关键点在与基极(b极)和发射极(e极)之间的电压情况,对于三级管只要箭头的始端比末端高0.7V就可以导通三极管的e极和c极。例如,对于PNP来说只要发射极的电压高出基极电压0.7V以上,这个三极管的发射极和集电极(c极)就可以顺利导通。

所以,对于上面的PNP驱动buzzer的图来说,我们要给 P2.0 低电平,让三极管e极和c极之间导通,从而驱动buzzer。同理对于NPN, P2^0 = 1时三极管导通,buzzer发声。