蜂鸣器的驱动模式
由于自激蜂鸣器由DC电压驱动,因此不需要使用交流信号来驱动它。只需将驱动电平输出到驱动端口,通过三极管放大驱动电流,使蜂鸣器发声。很简单,这里就不解释自激蜂鸣器了。这里只描述必须由1/2duty的方波信号驱动的他激蜂鸣器。
单片机驱动他激蜂鸣器有两种方式:一种是通过PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形驱动蜂鸣器。
PWM输出口的直接驱动是利用PWM输出口本身输出一定的方波直接驱动蜂鸣器。单片机的软件设置中有几个系统寄存器用来设置PWM口的输出,比如占空比、周期等。设置这些寄存器产生一个频率满足蜂鸣器要求的波形后,只要PWM输出打开,PWM输出口就可以输出一个这个频率的方波,此时蜂鸣器就可以被这个波形驱动了。比如驱动一个频率为2000Hz的蜂鸣器,我们可以知道周期为500μs,那么我们只需要将PWM周期设置为500μs,占空比电平设置为250μs,就可以产生一个频率为2000Hz的方波,然后通过这个方波用三极管驱动蜂鸣器。
不过用I/O定时翻转电平来产生驱动波形会有点麻烦。必须使用定时器进行定时,通过定时产生符合蜂鸣器要求的波形来翻转电平,用这个波形来驱动蜂鸣器。比如以2500Hz驱动蜂鸣器,可以知道周期是400μs,这样每隔200μs驱动一次蜂鸣器的I/O口就可以产生一个频率为2500Hz,占空比为1/2duty的方波,然后通过晶体管放大就可以驱动蜂鸣器。