小猪学arduino—使用开关控制led灯

在上一篇arduino学习之—led灯控制中,我们做了用输出口高低电瓶控制led闪烁的尝试,并使用pc发送指令的方法控制led的熄灭。

本篇学习如何利用输入口接收开关装置的信号,替换pc发指令来控制led。具体思路:如果按下开关,顺序亮起所有led灯;否则,闪烁灯每2秒闪烁一次,其它灯熄灭。

具体连线和代码如下:

IMG_3651

IMG_3652

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);
	}

}

执行效果:(开关按下后灯全亮)

IMG_3360

yan 2016.8.27 16:26

发表评论

电子邮件地址不会被公开。