蜂鳴器的介紹
蜂鳴器是一種一體化結構的電子訊響器,採用直流電壓供電,廣泛應用於計算機、印表機、複印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件.
有源蜂鳴器和無源蜂鳴器的根本區別是產品對輸入信號的要求不一樣;有源蜂鳴器工作的理想信號是直流電,通常標示為VDC、VDD等。因為蜂鳴器內部有一簡單的振蕩電路,能將恆定的直流電轉化成一定頻率的脈衝信號,從面實出磁場交變,帶動鉬片振動發音。但是在某些有源蜂鳴器在特定的交流信號下也可以工作,只是對交流信號的電壓和頻率要求很高,此種工作方式一般不採用。
按其驅動方式的不同,可分為:有源蜂鳴器(內含驅動線路)和無源蜂鳴器(外部驅動)
教你區分有源蜂鳴器和無源蜂鳴器,現在市場上出售的一種小型蜂鳴器因其體積小(直徑只有llmm)、重量輕、價格低、結構牢靠,而廣泛地應用在各種需要發聲的電器設備、電子製作和單片機等電路中。有源蜂鳴器和無源蜂鳴器的外觀如圖a、b所示。a)有源 b)無源。
2、工作原理
蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,本實驗用的蜂鳴器內部帶有驅動電路,所以可以直接使用。當不蜂鳴器連接的引腳為高電平時,內部驅動電路導通,蜂鳴器發出聲音;當不蜂鳴器連接的引腳為低電平,內部驅動電路截止,蜂鳴器不發出聲音。
3、蜂鳴器的連線
本實驗用的蜂鳴器內部帶有驅動電路,所以可以直接將蜂鳴器的正極連接到數字口,蜂鳴器的負極連接到GND插口中。如下圖:
程序如下:
#define LED 13
#define KEY 2
#define Buzzer 3
int KEY_NUM = 0; //按鍵鍵值變量
void setup()
{
pinMode(LED,OUTPUT); //LED為IO輸出
pinMode(KEY,INPUT_PULLUP);//按鍵為IO帶上拉輸入
pinMode(Buzzer,OUTPUT); //蜂鳴器為IO輸出
digitalWrite(Buzzer,LOW); //蜂鳴器初始為不鳴叫
}
void loop()
{
ScanKey(); //按鍵掃描
if(KEY_NUM == 1) //當有按鍵按下時
{
digitalWrite(LED,!digitalRead(LED)); //LED狀態翻轉
}
}
void ScanKey()
{
KEY_NUM = 0;
if(digitalRead(KEY) == LOW)
{
delay(20); //延時去抖動
if(digitalRead(KEY) == LOW)
{
BuzzerDi(); //滴一聲
KEY_NUM = 1; //設置鍵值
while(digitalRead(KEY) == LOW); //鬆手檢測
}
}
}
void BuzzerDi()
{
digitalWrite(Buzzer,HIGH); //蜂鳴器響
delay(20); //延時20ms
digitalWrite(Buzzer,LOW); //蜂鳴器關閉
}