今天进行的是Arduino的基础工程-----点亮一串流水灯。
硬件部分:
注意事项:
1.LED长一点的管脚应该和电阻一样接到同一行,短一点的管脚插入相邻行,因为LED只朝一个方向工作(从正极流向负极),因为他们有极性,正极长管脚应连接到电路的+5V端。
2.使用跳线连接每个LED的负极管脚到面包板边沿的长列孔,形成一个地线轨。3.
3.所有的LED的负极管教都连接到Arduino的GND管脚,使用条线连接地轨道中没有使用的一个孔道Arduino上的GND管脚
如下图元器件布局所示进行连接:
---------------------------------------------------------------------------------------------------------------------------------
代码部分:
// 定义全局变量
int delayTime = 40;
int currentLED = 4;
int dir = 1;
long timeChanged = 0;
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
void setup() {
// put your setup code here, to run once:
for(int i=0; i<10; i++){
pinMode(ledPin[i],OUTPUT);
}
timeChanged = millis(); //当安装完成之后记录时间(millish函数获取程序运行开始过去的时间)
}
void loop() {
// put your main code here, to run repeatedly:
//(timeChanged中减去当前时间,可以获得一个值,然后和delayTime进行比较,大于就改变点亮的灯。建立了一个“心跳”测试,即LED改变的时候,timeChanged的值也会更新,准备下一次测试)
if((millis() - timeChanged) > delayTime){
//关闭所有的灯光(上一次循环的时候可能已经被点亮)
for(int i=0; i<10; i++){
digitalWrite(ledPin[i], LOW);
}
//熄灭之后开始点亮
digitalWrite(ledPin[currentLED], HIGH);
//逐次点亮下一个LED灯
currentLED = currentLED +dir;
//判断是否到头或者到末尾
if(currentLED == 9){
dir = -1;
}
if(currentLED == 0){
dir = 1;
}
//记录当前改变的时刻
timeChanged = millis();
}
}
编译链接下载之后: