蜂鸣器简介
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于各种电子产品中作发声器件。
蜂鸣器分类
按驱动方式的原理:有源蜂鸣器(内含驱动线路)和无源蜂鸣器(外部驱动)。
按构造方式的不同:电磁式蜂鸣器和压电式蜂鸣器。
按封装的不同:插针蜂鸣器(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 --C2
delay(100);
tone(buzzerPin,587); //re --D3
delay(100);
tone(buzzerPin,659); //mi --E3
delay(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);
}*/
}