测试频率如图4所 示
发布时间:2018-12-21 18:41

  驱动也加大了软件开发的难度。接下来笔者将引领大家学习如何设计一个无需PWM也能驱动无源蜂鸣器的低成本电路。

  如图1所示,此图为无源蜂鸣器的常规驱动电路。需要在输入端输入一定频率PWM的信号才能使蜂鸣器发声。为了解放PWM资源,实现简单控制,必须如有源蜂鸣器一样提供一个振荡电路。而有源蜂鸣器主要使用LC振荡,如果要实际搭建此电路,电感参数比较难控制,而且成本高。此时,自然会想到简易的RC振荡,而由三极管构成的RC多谐振荡电路显然是一个不错的选择。

  三极管多谐振荡的通用电路如图2所示。这个电路起振的原理主要是通过电阻与电容的充放电使三极管交替导通。首先,在电路上电时,分别通过R1与R4对电容C1与C2进行充电。由于三极管元件的参数不可能完全一致,可以假设三极管Q1首先饱和导通,由于电容两端的电压不能突变,Q2的B极此时变成负压,Q2截止,Vo端输出高电平;C1通过R2进行充电,当C2的电位使BE极正向偏置时,Q2导通,Vo端输出低电平;同理C2电容两端电压不能突变,Q1的B极电压变为负压,此时Q1截止。这样循环往复,使在Vo端输,一定频率的方波信号。如图3所示,笔者使用示波器截取了Q1与Q2的B极和E极的波形,可以发现与上面的分析是吻合的。

  从以上的分析可以看出,Vo的输出信号频率受到R2与C1,R3与C2充放电速度的控制。假设,以Q2的C极作为信号的输出,R2与C1的充电时间T1决定了输出信号高电平时间,而R3与C2的充电时间T2决定了信号输出低电平时间。而信号的频率为:f=1/(T1+T2)。由此,可以推导出输出信号的公式。由于RC充电时间公式:t=R*C*Ln[(E-V0)/(E-Vt)],在本电路中,E为VCC,V0为-(VCC-Vbe),Vt为Vbe,则,最终的公式为:t=R*C*Ln[(2*VCC-Vbe)/(VCC-Vbe)]。

  接下来,就可以进行电路参数设计了。而笔者手中的蜂鸣器振荡频率全是2.4KHz的,所以此处只计算此频率的参数。设电容C1=C2=0.1F,VCC=5V,Vbe=0.63V则可以计算出电阻参数:R=1/(2*10-7*2.4*103*Ln[(2*5-0.63)/(5-0.63)])=2.7K。至于R1与R4的取值,只需要参数比R2与R3小一些即可,而信号输出的边沿的陡峭程度受这两个电阻影响,电阻越小,边沿越陡峭。按照此计算的参数搭建电路,测试频率如图4所示,实际频率与理论值接近。

  上面的振荡电路已经有了,下面又该如何驱动并且控制无源蜂鸣器呢?其实,只需要将电路进行简单修改即可实现目的。

  第一,将原电路R4替换成为蜂鸣器,并在蜂鸣器两端并联二极管。细心的读者如果看过《EasyARM-iMX283教你设计蜂鸣器电路》,会发现在无源蜂鸣器两端没有并联电容。通过实际的电路测量,无源蜂鸣器并没有产生尖峰脉冲,所以去掉此电容,如图5所示。