在上一篇arduino学习之—led灯控制中,我们做了用输出口高低电瓶控制led闪烁的尝试,并使用pc发送指令的方法控制led的熄灭。
本篇学习如何利用输入口接收开关装置的信号,替换pc发指令来控制led。具体思路:如果按下开关,顺序亮起所有led灯;否则,闪烁灯每2秒闪烁一次,其它灯熄灭。
具体连线和代码如下:
led.ino
int flickerPin = 8; //闪烁端口
int orderPin = 2; //顺序亮起起始端口
int orderLen = 6; //顺序亮起端口个数
int onoffPin = 9;//开关输入端口
int i=0;
void setup() {
//开关端口初始化
pinMode(onoffPin, INPUT);
//闪烁端初始化
pinMode(flickerPin, OUTPUT);
//闪烁端初始化
pinMode(flickerPin, 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(2000);
}else{//否则,执行闪烁灯闪烁,其他端口灯顺序亮起
//闪烁端口亮起
digitalWrite(flickerPin, LOW);
delay(500);
digitalWrite(flickerPin, HIGH);
delay(500);
//顺序端口亮起
for(i= orderPin;i<orderPin+orderLen;i++){
digitalWrite(i, HIGH);
delay(100);
}
delay(2000);
}
}
执行效果:(开关按下后灯全亮)
yan 2016.8.27 16:26