上一篇,我们学习了如何使用开关控制led灯,这一次,我们学习一下如何使用蜂鸣器。
蜂鸣器的使用方式和原理与led完全相同,高电平就发出声音,底电平静音,迅速的给高低电平就能发出滴滴类的声音。我们直接使用上一次的连线方法,把端口2位置的led换成蜂鸣器,把端口2的单次高电平改为20ms间隔的滴滴声。
由于连线图除2端口的led变为蜂鸣器外其它无变化就不上图了,代码调整如下:
int onoffPin = 9;//开关输入端口
int flickerPin = 8; //闪烁端口
int buzzerPin = 2; //蜂鸣器端口
int orderPin = 3; //顺序亮起起始端口
int orderLen = 5; //顺序亮起端口个数
int i=0;
void setup() {
//开关端口初始化
pinMode(onoffPin, INPUT);
//闪烁端口初始化
pinMode(flickerPin, OUTPUT);
//蜂鸣器端口初始化
pinMode(buzzerPin, OUTPUT);
//顺序亮起端口初始化
for(i= orderPin;i<orderPin+orderLen;i++){
pinMode(i, OUTPUT);
}
}
void loop() {
int var = digitalRead(onoffPin);//读取开关端口电瓶值
if(var==LOW){
//闪烁端口熄灭
digitalWrite(flickerPin, HIGH);
delay(500);
digitalWrite(flickerPin, LOW);
//顺序端口熄灭
for(i= orderPin;i<orderPin+orderLen;i++){
digitalWrite(i, LOW);
}
delay(1000);
}else{//否则,执行闪烁灯闪烁,其他端口灯顺序亮起
//闪烁端口亮起
digitalWrite(flickerPin, LOW);
delay(500);
digitalWrite(flickerPin, HIGH);
delay(500);
//蜂鸣器间歇响起
for(i=0;i<30;i++){
digitalWrite(buzzerPin,HIGH);
delay(20);
digitalWrite(buzzerPin,LOW);
delay(20);
}
//顺序端口亮起
for(i= orderPin;i<orderPin+orderLen;i++){
digitalWrite(i, HIGH);
delay(100);
}
delay(1000);
}
}
yan 2016.8.28 18:28
感觉很不错的样子!