小猪学arduino—led灯控制

这里使用arduino UNO r3板子+7个电阻+7个led来学习如何实现定时闪烁和顺序亮起。

通过led控制可以了解arduino板子的基本控制和执行原理:GND作为负极来使用,2-13做为可控制的正极来使用。给对应端口高电平即会使通路通电,低电平可以理解为断电。增加电阻是为了降低电流避免烧坏led。

儿子的需求:

默认10端口灯一直保持闪烁,2-7端口灯顺序亮起后保持常亮;发送指令后,所有灯全灭;2秒后,10端口闪烁一次后,2-7端口顺序恢复常亮。

具体连线和代码如下:

IMG_3359

led.ino

int flickerPin = 10; //闪烁端口
int orderPin = 2; //顺序亮起起始端口
int orderLen = 6; //顺序亮起端口个数
int i=0;
void setup() {
	Serial.begin(9600); //设置波特率9600,用于接收来自pc的指令
	//闪烁端初始化
	pinMode(flickerPin, OUTPUT);
	//顺序亮起端口初始化
	for(i= orderPin;i<orderPin+orderLen;i++){
		pinMode(i, OUTPUT);
	}

}

void loop() {
	char var=Serial.read();//读取pc发给arduino的指令
	if(var=='R'){//如果收到R指令,熄灭所有led灯
		//闪烁端口熄灭
		digitalWrite(flickerPin, LOW);
		//顺序端口熄灭
		for(i= orderPin;i<orderPin+orderLen;i++){
			digitalWrite(i, LOW);
		}
		//控制台输出调试信息
		Serial.println("Hello Arduino!");
		delay(2000);
	}else{//否则,执行闪烁灯闪烁,其他端口灯顺序亮起
		//闪烁端口亮起
		digitalWrite(flickerPin, LOW);
		delay(1000);
		digitalWrite(flickerPin, HIGH);
		delay(1000);

		//顺序端口亮起
		for(i= orderPin;i<orderPin+orderLen;i++){
			digitalWrite(i, HIGH);
			delay(100);
		}

	}

}

执行效果:(发送R指令可将灯全部熄灭)

IMG_3360

yan 2016.8.14 16:45

 

欢迎关注下方“非著名资深码农“公众号进行交流~

2 thoughts on “小猪学arduino—led灯控制

发表评论

邮箱地址不会被公开。