A. 單片機引腳可以直接驅動蜂鳴器嗎一定採納
這還得單片機的電氣特性,5V小型蜂鳴器至少約需要10mA電流,最大一般30mA。通常單片機很難輸出這么大的電流,適宜採用電流流入方式。
我知道的STC採用開漏方式是可以將蜂鳴器直接連單片機IO管腳,另外電磁爐上的蜂鳴器通常也是直接連IO管腳的。
B. 單片機蜂鳴器工作原理是什麼哪位高手可以指教一下
蜂鳴器工作發聲原理:
蜂鳴器的發聲原理由振動裝置和諧振裝置組成,而蜂鳴器又分為無源他激型與有源自激型。
無源他激型蜂鳴器的工作發聲原理是:方波信號輸入諧振裝置轉換為聲音信號輸出。
有源自激型蜂鳴器的工作發聲原理是:直流電源輸入經過振盪系統的放大取樣電路在諧振裝置作用下產生聲音信號。
電路原理:PORTC.3/T0 作為I/O 口通過三極體Q2 來驅動蜂鳴器LS1,而PORTC.2/PWM0 則作為PWM 輸出口通過三極體Q1 來驅動蜂鳴器LS2。另外在PORTA.3 和PORTA.2 分別接了兩個按鍵,一個是PWM 按鍵,是用來控制PWM 輸出口驅動蜂鳴器使用的;另一個是PORT 按鍵,是用來控制I/O 口驅動蜂鳴器使用的。連接按鍵的I/O 口開內部上拉電阻。
(2)單片機驅動蜂鳴器擴展閱讀:
蜂鳴器的應用領域
蜂鳴器廣泛應用領域:計算機行業(主板蜂鳴器,機箱蜂鳴器,電腦蜂鳴器)列印機(控制板蜂鳴器)、復印機、報警器行業(報警蜂鳴器,警報蜂鳴器)、電子玩具(音樂蜂鳴器)、農業、汽車電子設備行業(車載蜂鳴器,倒車蜂鳴器,汽車蜂鳴器,摩托車蜂鳴器)電話機(環保蜂鳴器)、定時器,空調,醫療設備等電聲行業。
C. 51單片機之蜂鳴器
蜂鳴器是一種一體化結構的電子訊響器,採用直流電壓供電,廣泛應用於計算機、列印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。我們開發板上常用的蜂鳴器就是常常說的交流蜂鳴器或直流蜂鳴器(自激式蜂鳴器)。 直流蜂鳴器是給一定的驅動直流電壓就會響。而交流蜂鳴器是需要給蜂鳴器一個脈沖才會響。常見的有PWM波控制蜂鳴器的頻率。脈沖就是高低電平的切換,如下圖:一個方波脈沖
我們用單片機的IO口實現一種這樣高低電平的方波,驅動蜂鳴器發音。我們板子上配的就是交流蜂鳴器。
接下來我們看一下蜂鳴器的硬體電路:
蜂鳴器通過三極體驅動。我們利用杜邦線將蜂鳴器的一端J8連接到板子上P1.5管腳上。
示常式序:
#include "reg52.h"
#include "intrins.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit beep = P1^5;
void delay(uint16 i)
{
while(i--);
}
void main()
{
while(1)
{
beep = ~beep;
delay(10);
}
}
該程序實現蜂鳴器的響和停,程序較為簡單,可以在此基礎上進行擴展。
D. 單片機驅動蜂鳴器電路
單片機驅動蜂鳴器電路如下:
蜂鳴器經常用於電腦、列印機、萬用表這些設備上做提示音,提示音一般也很簡單,就是簡單發出個聲音就行,我們用程序簡單做了個 4KHZ 頻率下的發聲和 1KHZ 頻率下的發聲程序代碼如下:
#include
sbit BUZZ = P1^6; //蜂鳴器控制引腳
unsigned char T0RH = 0; //T0 重載值的高位元組
unsigned char T0RL = 0; //T0 重載值的低位元組
voidOpenBuzz(unsigned int frequ);
void StopBuzz();
void main(){
unsigned int i;
TMOD = 0x01; //配置 T0 工作在模式 1,但先不啟動
EA = 1;
while(1){ //使能全局中斷
OpenBuzz(4000); //以 4KHz 的頻率啟動蜂鳴器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鳴器
for (i=0; i<40000; i++);
OpenBuzz(1000); //以 1KHz 的頻率啟動蜂鳴器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鳴器
for (i=0; i<40000; i++);
}
}
/* 蜂鳴器啟動函數,frequ-工作頻率 */
void OpenBuzz(unsigned int frequ){
unsigned int reload;//計算所需的定時器重載值
reload = 65536 - (11059200/12)/(frequ*2); //由給定頻率計算定時器重載值
T0RH = (unsigned char)(reload >> 8); //16 位重載值分解為高低兩個位元組
T0RL = (unsigned char)reload;
TH0 = 0xFF; //設定一個接近溢出的初值,以使定時器馬上投入工作
TL0 = 0xFE;
ET0 = 1; //使能 T0 中斷
TR0 = 1; //啟動 T0
}
/* 蜂鳴器停止函數 */
void StopBuzz(){
ET0 = 0; //禁用 T0 中斷
TR0 = 0; //停止 T0
}
/* T0 中斷服務函數,用於控制蜂鳴器發聲 */
void InterruptTimer0()interrupt1{
TH0 = T0RH; //重新載入重載值
TL0 = T0RL;
BUZZ = ~BUZZ; //反轉蜂鳴器控制電平
}
E. 單片機驅動蜂鳴器的電路分析
你所說的情況並不限制與蜂鳴器的驅動,包括常用的繼電器,指示燈等很多情況(布爾控制器件)都會遇到。
設計這種電路,首先是要考察驅動的對象,看其正常工作的額定電流和電壓。根據電流和電壓參數選擇三極體的,一般要保證三極體的最大Ic要大於等於1.5倍驅動對象的額定電流,Vce要大於等於1.2倍驅動器件的額定電壓,如果是感性負載(如繼電器),還必須在負載上反向並聯吸收二極體,以防止感生電壓過高損壞三極體。
選擇好三極體後,根據三極體手冊給出的最小放大倍數和驅動器件的最大工作電流計算所需要的Ib,根據這個Ib查詢三極體數據手冊,看看是否在三極體的安全工作范圍中,如果超出就必須要重新選擇三極體,如果合用,則計算Rb。
三極體的Vbe基本上可以取一個定值0.7V,查詢單片機手冊在既定工作電壓下IO埠的高電平輸出電壓,用此電壓減去0.7V,再除以之前所得的Ib,得出所需的Rb,這個Rb可能不是標准電阻,取最接近的標准電阻,記住,只能取小值(以保證三極體能處於飽和狀態),驗算實際Ib是不是在三極體的安全范圍之內。
F. 求助.單片機驅動蜂鳴器時,聲音很小
用單片機的引腳直接驅動蜂鳴器,聲音肯定小,不可能大呀。
因單片機的引腳的驅動能力很小,不能直接驅動蜂鳴器的。
首先,要看你的單片機是什麼型號的,如果是STC10及以上系列的單片機,I/O設置為強推挽模式才可以。
其它型號的單片機,就必須用一個三極體放大後再驅動蜂鳴器了。
G. 單片機可以直接驅動一個蜂鳴器嗎
蜂鳴器的工作電流一般比較大,以致於單片機的i/o
口是無法直接驅動的(但avr可以驅動小功率蜂鳴器),所以要利用放大電路來驅動,一般使用三極體來放大電流就可以了。