注意:這里的“源”不是指電源,而是指震蕩源。
也就是說,有源蜂鳴器內部帶震蕩源,所以只要一通電就會叫;而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫,必須用2K-5K的方波去驅動它。
有源蜂鳴器往往比無源的貴,就是因為里面多個震蕩電路。
無源蜂鳴器的優點是:
1. 便宜
2. 聲音頻率可控,可以做出“多來米發索拉西”的效果
3. 在一些特例中,可以和LED復用一個控制口
有源蜂鳴器的優點是:程序控制方便。
驅動模塊
在單片機應用的設計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始工作、工作結束或是故障等等。這里對單片機在蜂鳴器驅動上的應用作一下描述。
驅動方式
由于自激蜂鳴器是直流電壓驅動的,不需要利用交流信號進行驅動,只需對驅動口輸出驅動電平并通過三極管放大驅動電流就能使蜂鳴器發出聲音,很簡單,這里就不對自激蜂鳴器進行說明了。這里只對必須用1/2duty的方波信號進行驅動的他激蜂鳴器進行說明。
單片機驅動他激蜂鳴器的方式有兩種:一種是PWM輸出口直接驅動,另一種是利用I/O 定時翻轉電平產生驅動波形對蜂鳴器進行驅動。
PWM 輸出口直接驅動是利用PWM輸出口本身可以輸出一定的方波來直接驅動蜂鳴器。在單片機的軟件設置中有幾個系統寄存器是用來設置PWM口的輸出的,可以設置占空比、周期等等,通過設置這些寄存器產生符合蜂鳴器要求的頻率的波形之后,只要打開PWM輸出,PWM輸出口就能輸出該頻率的方波,這個時候利用這個波形就可以驅動蜂鳴器了。比如頻率為2000Hz的蜂鳴器的驅動,可以知道周期為500μs,這樣只需要把PWM的周期設置為500μs,占空比電平設置為250μs,就能產生一個頻率為2000Hz的方波,通過這個方波再利用三極管就可以去驅動這個蜂鳴器了。
而利用I/O定時翻轉電平來產生驅動波形的方式會比較麻煩一點,必須利用定時器來做定時,通過定時翻轉電平產生符合蜂鳴器要求的頻率的波形,這個波形就可以用來驅動蜂鳴器了。
比如為2500Hz的蜂鳴器的驅動,可以知道周期為400μs,這樣只需要驅動蜂鳴器的I/O口每200μs翻轉一次電平就可以產生一個頻率為2500Hz,占空比為1/2duty的方波,再通過三極管放大就可以驅動這個蜂鳴器了。
驅動電路
由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O 口是無法直接驅動的*(但AVR可以驅動小功率蜂鳴器),所以要利用放大電路來驅動,一般使用三極管來放大電流就可以了。
蜂鳴器驅動電路一般都包含以下幾個部分:一個三極管、一個蜂鳴器、一個續流二極管和一個電源濾波電容。
1.蜂鳴器
發聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無源蜂鳴器)就可以發聲,其主要參數是外形尺寸、發聲方向、工作電壓、工作頻率、工作電流、驅動方式(直流/方波)等。這些都可以根據需要來選擇。
2.續流二極管
蜂鳴器本質上是一個感性元件,其電流不能瞬變,因此必須有一個續流二極管提供續流。否則,在蜂鳴器兩端會產生幾十伏的尖峰電壓,可能損壞驅動三極管,并干擾整個電路系統的其它部分。
3.濾波電容
濾波電容C1的作用是濾波,濾除蜂鳴器電流對其它部分的影響,也可改善電源的交流阻抗,如果可能,最好是再并聯一個220uF的電解電容。
4.三極管
三極管Q1起開關作用,其基極的高電平使三極管飽和導通,使蜂鳴器發聲;而基極低電平則使三極管關閉,蜂鳴器停止發聲。
驅動設計
由于這里要介紹兩種驅動方式的方法,所以在設計模塊系統中將兩種驅動方式做到一塊,即程序里邊不僅介紹了PWM,輸出口驅動蜂鳴器的方法,還要介紹I/O口驅動蜂鳴器的方法。所以,我們將設計如下的一個系統來說明單片機對蜂鳴器的驅動:系統有兩個他激蜂鳴器,頻率都為2000Hz,一個由I/O口進行控制,另一個由PWM 輸出口進行控制;系統還有兩個按鍵,一個按鍵為PORT按鍵,I/O 口控制的蜂鳴器不鳴叫時按一次按鍵I/O口控制的蜂鳴器鳴叫,再按一次停止鳴叫,另一個按鍵為PWM 按鍵,PWM口控制的蜂鳴器不鳴叫時按一次按鍵PWM輸出口控制的蜂鳴器鳴叫,再按一次停止鳴叫。