蜂鳴器和LED在嵌入式開發中經常用來做聲光報警輸出,LED比較簡單,蜂鳴器在驅動的時候要注意區分是有源蜂鳴器還是無源蜂鳴器,有源蜂鳴器驅動比較簡單,直接給電平信號就可以驅動,但是無源蜂鳴器,因為內部沒有振蕩源,所以必須給一定頻率的脈衝信號或者正弦信號去驅動,才能發出聲音。今天我們就來看看無源蜂鳴器。
注意,這裡的「源」不是指電源。而是指震蕩源。也就是說,有源蜂鳴器內部帶震蕩源,所以只要一通電就會叫,而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它。
有源蜂鳴器往往比無源的貴,就是因為裡面多個震蕩電路。
無源蜂鳴器的優點是:
1, 便宜,
2, 聲音頻率可控。
有源蜂鳴器的優點是:程序控制方便。
有源蜂鳴器和無源蜂鳴器的根本區別是產品對輸入信號的要求不一樣;有源蜂鳴器工作的理想信號是直流電,通常標示為VDC、VDD等。因為蜂鳴器內部有一簡單的振蕩電路,能將恆定的直流電轉化成一定頻率的脈衝信號,從面實出磁場交變,帶動鉬片振動發音。但是在某些有源蜂鳴器在特定的交流信號下也可以工作,只是對交流信號的電壓和頻率要求很高,此種工作方式一般不採用。而無源蜂鳴器沒有內部驅動電路,有些公司和工廠稱為訊響器,國標中稱為聲響器。無源蜂鳴器工作的理想信號方波。如果給預直流信號蜂鳴器是不響應的,因為磁路恆定,鉬片不能振動發音。
無源電磁蜂鳴器工作原理是:交流信號通過繞在支架上的線包在支架的芯柱上產生一交變的磁通,交變的磁通和磁環恆定磁通進行疊加,使鉬片以給定的交流信號頻率振動並配合共振腔發聲。產品的整個頻率和聲壓的響應曲線與間隙值、鉬片的固有振動頻率(可粗略折射為小鉬片的厚度)、外殼(亥姆霍茲共振聲腔)頻率、磁環的磁強漆包線的線徑有直接關係。
壓電蜂鳴片是將高壓極壓化後的壓電陶瓷片黏貼于振動金屬片上。當添加交流電壓後,會因為壓電效應, 而生成機械變形伸展及收縮,利用此特性使金屬片振動而發出聲響。
假設我們使用一無源壓電式蜂鳴器接於NXP MKE02 MCU的PTH2腳,那麼如何去驅動他呢?首先要明白既然是無源的那麼不能用電平直接驅動,需要一定頻率的方波信號。
查看datasheet 需要4K的方波信號驅動
方案一:使用PWM輸出驅動產生4K方波
方案二:使用定時器翻轉IO腳驅動。
方案一,如果代碼要求規範嚴格的話,我們在做蜂鳴器驅動時候,需要PWM驅動,關於PWM的驅動我們在公眾號裡面曾經不只一次的詳細講到PWM驅動,這裡不在贅述。
方案二需要定時器和GPIO驅動。假設使用方案二則簡單需要
頻率4k則周期250us的方波信號,需要一個125us周期的定時器翻轉蜂鳴器的驅動引腳來控制發聲。
初始化配置驅動管腳為輸出
蜂鳴器響和停需要一個函數
定時器的中斷函數,我們在這裡就不在列出,官方帶的例程有許多定時器的程序,可以參考使用。
NXP提供了官方的各種外設驅動,可以調用它的外設驅動,或者自己根據數據參考手冊去寫驅動。雖然蜂鳴器的驅動很簡單,但是希望大家在實際應用的時候區分是有源蜂鳴器和無源蜂鳴器。