class="markdown_views prism-tomorrow-night">
(二)有源蜂鸣器实验
(添加)有源蜂鸣器与无源蜂鸣器区别

这是有源蜂鸣器

这是无源蜂鸣器
将蜂鸣器引脚朝上时,可以看到,有绿 {MOD}电路板的是一种无源蜂鸣器,没有电路板而使用黑胶密封的是一种有源蜂鸣器。从外观上并不能绝对的区分出有源与无源,最可靠的做法除了查看产品的参数手册以外,还有就是使用万用表测试蜂鸣器电阻,只有8Ω或者16Ω的是无源蜂鸣器,电阻在几百欧以上的是有源蜂鸣器。
1、连接图
2、代码
#define LED 13
#define KEY 2
#define BUZZER 3
int KEY_NUM = 0;//0和1表示按键状态
void setup() {
pinMode(LED,OUTPUT);
pinMode(KEY,INPUT_PULLUP);//利用上拉电阻
pinMode(BUZZER,OUTPUT);
digitalWrite(BUZZER,LOW);
}
void loop() {
ScanKey();
if(KEY_NUM==1)
{
digitalWrite(LED,!digitalRead(LED));//执行翻转
}
}
void ScanKey()//扫描按键函数
{
KEY_NUM = 0;
if(digitalRead(KEY)==LOW)
{
delay(20);//抖动延时(button按下一般会有抖动,一般20ms左右)
if(digitalRead(KEY)==LOW)
{
KEY_NUM=1;
buzzer_Di();//按键按下,蜂鸣器发声
while(digitalRead(KEY)==LOW);
}
}
}
void buzzer_Di()//蜂鸣器发声函数
{
digitalWrite(BUZZER,HIGH);
delay(100);
digitalWrite(BUZZER,LOW);
}