2013年4月5日 星期五

Arduino 蜂鳴器聲音



      用Arduino 可以完成的互動作品有很多,最常見的就是聲光展示了,前面一直都是在用LED在做實驗,本個實驗就讓大家的電路發出聲音,能夠發出聲音的最常見的元器件就是蜂鳴器和喇叭了,兩者相比較蜂鳴器更簡單和易用所以我們本實驗採用蜂鳴器。



蜂鳴器的種類規格繁多,需先知道幾個參數 ( 電壓,電流,驅動方式,尺寸,連接/固定方式),當然更重要的是,想要獲的聲音 (音壓大小,頻率高低),
工作電壓: 電磁式的蜂鳴器, 從1.5到24V, 壓電式的從3V到220V都是可行的,但一般壓電的還是建議有9V以上的電壓,以獲得較大的聲音.
消耗電流: 電磁式的依電壓的不同,從幾十到上百毫安培都有,壓電式的就省電的多,幾毫安培就可以正常的動作, 且在蜂鳴器啟動時,瞬間需消耗約三倍的電流,
驅動方式: 二種蜂鳴器都有自激式的,只要接上直流電(DC)即可發聲,因為已內建了驅動線路在蜂鳴器中了,因為動作原理的不同,電磁式蜂鳴器要用1/2方波來驅動,壓電的用方波,才能有較好的聲音輸出.
尺寸: 蜂鳴器的尺寸會影響到音量的大小,頻率的高低,電磁式的最小從7mm到最大的25mm,壓電式的從12mm到50mm或更大都有.
連接方式: 一般常見的有插針(DIP), 焊線(Wire), 貼片(SMD), 壓電式大顆的還有鎖螺絲的方式.
音壓: 蜂鳴器常以10cm的距離做為測試的標準,距離增加一倍,大概會衰減6dB, 反之距離縮短一倍則會增加6dB,電磁式蜂鳴器大約能達到85dB / 10cm的水準,壓電式的就可以做的很大聲,常見的警報器,大都是以壓電蜂鳴器製成.

源自於
http://www.buzzer-speaker.com/manufacturer/tw/faq/buzzer%20how%20to%20choose.htm



 
壓電式蜂鳴器構造與原理介紹
 
  壓電蜂鳴片是將高壓極壓化後的壓電陶瓷片黏貼於振動金屬片上。當加入交流電壓後,會因為壓電效應,而產生機械變形伸展及收縮,利用此特性使金屬片振動而發出聲響。
  以回授方式來做區分壓電蜂鳴片大致上分為回授式蜂鳴片(自激式)與無回授式蜂鳴片(外激式)兩種。當回授式蜂鳴片搭配正回授振盪電路會產生一個與共振腔頻率相同的單音;而無回授式蜂鳴片則可以搭配外部振盪電路,選擇任意頻率發出聲音。
 
以下為兩種壓電蜂鳴片的固定方式:
 
a.週邊支持方式-將蜂鳴片外徑邊緣固定於共振腔內,一般採無回授式蜂鳴片,而其蜂鳴片須與共振腔頻率搭配,才會有較高的音壓輸出,並由外部振盪電路產生推動信號,使蜂鳴器發出聲音。
 
b.節點支持方式-將蜂鳴片固定於約與陶瓷片直徑同尺寸的環形結構內。若共振腔設計得宜,並搭配頻率正確的回授式蜂鳴片與正回授電路,將可產生較大音壓及正確的頻率。
 
 
以上兩種方式都需以矽膠粘合蜂鳴片於機構中。

源自 http://www.kingstate.com.tw/cht/tabid/179/Default.aspx



 
 電磁式蜂鳴器構造與原理介紹
 
  將線圈置於由永久磁鐵、鐵心、高導磁的小鐵片以及振動膜組成的磁迴中。 小鐵片與振動膜受磁場的吸引會向鐵心靠近,線圈接收振動訊號則會產生交替的磁場,繼而將電能轉為聲能。
 
結構:
 
內部驅動線路原理介紹:
 
a.直音
b.脈衝音
 註: T:響應時間
輸出音壓與響應時間關係圖如下:
 
 建議響應時間應超過50毫秒
 
 源自 http://www.kingstate.com.tw/cht/tabid/180/Default.aspx





   連接電路時要注意一點就是蜂鳴器有正負極之分,下面右側實物圖可看到蜂鳴器有紅黑兩種接線。連接好電路程序這方面就很簡單了,與前面按鍵控制小燈是實驗程序類似,因為蜂鳴器的控制接口也是數字接口輸出高低電平就可以控制蜂鳴器的鳴響。



int buzzer=8;  //設置控制蜂鳴器的數位IO腳 為8

void setup()
{
pinMode(buzzer,OUTPUT);//設置數IO腳模式,OUTPUT
}


void loop()
{
     unsigned char i,j;   //定義變數
     while(1)
    {
               for(i=0;i<80;i++)//輸出一個頻率聲音
    {
        digitalWrite(buzzer,HIGH);//發聲音
        delay(1);//延時1ms

       digitalWrite(buzzer,LOW);//不發聲音
        delay(1);//延時ms
       }


     for(i=0;i<100;i++)      //輸出另一個頻率聲音
    {
        digitalWrite(buzzer,HIGH);   //發聲音
        delay(2);//延時2ms
        
        digitalWrite(buzzer,LOW);   //不發聲音
       delay(2);//延時2ms
       }
    }

}







沒有留言:

張貼留言

Node-Red Dashboard UI Template + AngularJS 參考 AngularJS教學 --3

  Node-Red Dashboard UI Template + AngularJS 參考 AngularJS教學 --3 AngularJS 實例 <!DOCTYPE html> <html> <head> <meta charse...