Arduino Uno 实验3——蜂鸣器
蜂鳴器簡介
??蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于各種電子產品中作發聲器件。
蜂鳴器分類
??按驅動方式的原理:有源蜂鳴器(內含驅動線路)和無源蜂鳴器(外部驅動)。
??按構造方式的不同:電磁式蜂鳴器和壓電式蜂鳴器。
??按封裝的不同:插針蜂鳴器(DIP BUZZER)和貼片式蜂鳴器(SMD BUZZER)。
??按電流的不同:直流蜂鳴器和交流蜂鳴器。
有源/無源蜂鳴器
??這里的“源”不是指電源,而是指震蕩源。也就是說,有源蜂鳴器內部帶震蕩源,所以只要一通電就會叫。而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。
壓電/電磁蜂鳴器
??壓電式蜂鳴器:一般為直流,用的是壓電材料,即當受到外力導致壓電材料發生形變時壓電材料會產生電荷。同樣,當通電時壓電材料會發生形變。
??主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發光二極管。
??電磁式蜂鳴器:主要是利用通電導體會產生磁場的特性,用一個固定的永久磁鐵與通電導體產生磁力推動固定在線圈上的鼓膜。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發聲。
??主要由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。
??由于兩種峰鳴器發音原理不同,壓電式結構簡單耐用但音調單一音色差,適用于報警器等設備。而電磁式由于音色好,所以多用于語音、音樂等設備。
區分有源與無源
區分正負
1、有源蜂鳴器
??一、看引腳長度,引腳長的為正,短的為負。
??二、看標識,有源蜂鳴器上會有一張標簽,標簽上面會標出正極。
2、無源蜂鳴器
??無正負之分。
無源蜂鳴器的使用:
電路搭建:
方法一:方波驅動
方法二:tone函數驅動(PWM信號)
??tone()函數可以產生固定頻率的PWM信號來驅動揚聲器發聲。發聲時間長度和聲調都可以通過參數控制。定義發聲時間長度有兩種方法,第一種是通過tone()函數的參數來定義發聲時長,另一種是使用noTone()函數來停止發聲。如果您在使用tone()函數時沒有定義發聲時間長度,那么除非您通過noTone()函數來停止聲音,否則Arduino將會一直通過tone()函數產生聲音信號。
??Arduino一次只能產生一個聲音。假如Arduino的某一個引腳正在通過tone()函數產生發聲信號,那么此時讓Arduino使用另外一個引腳通過tone()函數發聲是不行的。
注意:
??1. 對于Arduino Mega以外的控制器,使用tone()函數時會影響引腳3和引腳11的PWM信號輸出。
??2. 如果你想要使用不同的引腳產生不同的聲音音調,每一次更換發聲引腳以前都要使用noTone函數停止上一個引腳發聲。Arduino是不支持兩個引腳同時發聲的。
參考程序:
const int buzzerPin = 10; //蜂鳴器模塊連接引腳10 void setup() {pinMode(buzzerPin,OUTPUT); } void loop() {tone(buzzerPin,532); //duo --C2delay(100);tone(buzzerPin,587); //re --D3delay(100);tone(buzzerPin,659); //mi --E3delay(100);/* for(int i = 200; i<=1000; i+=10){ //警報聲tone(buzzerPin,i);delay(10);}for(int i = 1000; i>=200; i-=10){ //警報聲tone(buzzerPin,i);delay(10);}*/ }總結
以上是生活随笔為你收集整理的Arduino Uno 实验3——蜂鸣器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: APP技巧:手机连接WiFi后,移动数据
- 下一篇: 这是我见过最好的Flash知识介绍了!