有源蜂鸣器与无源蜂鸣器区别:

  • 外形不同:
        两种蜂鸣器的引脚都朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。

  • 测试声音不同:
        用黑表笔接蜂鸣器 ‘+’引脚,红表笔在另一引脚上来回碰触,如果发出咔咔声且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。

  • 振动频率不同:
        用直流电压输入相应电压(可以由小调到大),频率大概为2.7KHz,可以直接响的为有源电磁式蜂鸣器,不直接响的,需要用2k~ 5k的方波去驱动它。因为无源内部不带震荡源。而有源蜂鸣器往往比无源的贵,就是因为里面有多个震荡电路。

    扩展:
           蜂鸣器驱动电路一般包含:一个三极管、一个续流二极管、一个滤波电容、一个蜂鸣器。
           蜂鸣器作为发声元件,在其两端施加方波或者电压就可以发声。

  • 续流二极管起到提供续流的作用,否则在蜂鸣器的两端会产生几十伏的尖端电压,有可能将三极管损坏,还有可能干扰整个电路中的其它部分。

  • 滤波电容的作用是滤波,滤出蜂鸣器电流对其它部分的影响,并且起到了改善电源的交流阻抗。
                  
           

^ 单片机不是功率器件,它适合做控制用,不适合驱动功率器件。(直接驱动有可能会损坏单片机)
       

       

三极管工作原理:

       

       

  • BASE(基极)
  • COLLECTOR(集电极)
  • EMITTER(发射极)

PNP三极管:

  • 如果IE~ IB流过的电流大于1mA,则导通;

  • 如果IE~ IB没有流过电流,则EC截至,处于中断状态;

  • 如果发射极E >0.7V 基极B,也会导通EC;

    NPN三极管:

  • 如果IB~ IE流过的电流大于1mA,则EC导通;

  • 如果IB~ IE,没有流过电流,则EC截至,处于中断状态;

  • 如果基极B >0.7V 发射机E,也会导通EC;
           

    流水灯蜂鸣器代码:

           

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <reg52.h>  
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit beep = P2^3;

uchar temp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //LED灯相关变量

void delay(uint z) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 毫秒级延时函数
{

uint x,y;
for(x = z; x > 0; x--)
for(y = 144;y > 0; y--);

}

void main()
{

temp = 0xfe;
P1 = temp; // 1111 1110
delay(100);
while(1)
{
temp = _crol_(temp,1);
P1 = temp;
beep = ~beep;
delay(100);
}

}