有源蜂鸣器实验
实验目的
每按键一次,蜂鸣器滴一次
理论学习
有源蜂鸣器和无源蜂鸣器的区别:
有源和无源的区别是指震荡源,通常有源蜂鸣器内部带有震荡源,所以只要一通电就会鸣叫一声,无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2k到5k的方波去驱动它
原理图
代码编写
int led = 13;
int key = 2;
int buzzer = 3;//有源蜂鸣器引脚定义
int key_num = 0;//按键值存放变量,不等于1说明有按键按下
void setup() {
// put your setup code here, to run once:
pinMode(led,OUTPUT);//定义led为输出引脚
pinMode(key,INPUT_PULLUP);//定义key为带上拉输入引脚
pinMode(buzzer,OUTPUT);//将蜂鸣器设置为输出
digitalWrite(buzzer,LOW);
}
void loop() {
// put your main code here, to run repeatedly:
Scankey();//按键扫描程序,当按键按下的时候,该程序会修改key_num的值
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;//将变量设置为1
while(digitalRead(key) == LOW);//等待按键松手
}
}
}
void buzzerdi(){
digitalWrite(buzzer,HIGH);
delay(20);
digitalWrite(buzzer,LOW);
}
标签:buzzer,led,有源,实验,key,按键,蜂鸣器
From: https://blog.51cto.com/u_15016660/6296635