控制部分-循环迭代(霹雳游侠)

你可能经常需要对一系列引脚进行迭代,来实现对这些引脚逐个进行操作。例如:本例中使用for循环来让连接到Arduino/Genuino板2-7号引脚的6个LED逐个、来回地点亮、熄灭(开始由2-7,后来由7-2)。LED的开关通过使**digitalWrite()和delay()**来实现。

本例的另一个名字叫做 “霹雳游侠“(Knight Rider)。霹雳游侠是80年代的一个电视剧,在剧中,David Hasselhoff 拥有一套人工智能系统 KITT 来驾驶他的Pontiac跑车。片方在他的Pontiac跑车上装配了很多不同形状和尺寸的LED来打造一种科幻效果。更值得一提的是:跑车有一个炫酷的显示屏,显示屏上有一组线性排列的LED灯来回闪烁。感兴趣朋友可以看看这一条视频:KITT与KARR的战斗。本例的创作灵感就源于KITT的显示屏。

imageimage

硬件需求
Arduino板或Genuino板
6个220Ω电阻
6个LED
跳线
面包板
连接线

电路

将六个LED分别串接一个220Ω电阻,连接到Arduino板上的2-7引脚。

原理图

代码
下列代码最开头就是用了一个**for()**循环来设置2-7引脚为输出模式。
在loop中,有两个for循环。我们使用for循环来对LED进行迭代,从2-7一个接一个的点亮、熄灭。当最后一个LED亮起时,就反向开始迭代,从7-2。

  /*
For循环迭代(霹雳游侠)

本例展示for循环的使用。
将LED逐个点亮熄灭、然后反向

电路搭建:
* LED连接2-7引脚与GND

代码公开。
*/

int timer = 100;           // 延迟时间

void setup() {
// 用for循环迭代初始化LED的引脚为输出模式:
for (int thisPin = 2; thisPin < 8; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}

void loop() {
// 从最低引脚迭代到最高引脚:
for (int thisPin = 2; thisPin < 8; thisPin++) {
// 将LED打开:
digitalWrite(thisPin, HIGH);
delay(timer);
// 将LED关闭:
digitalWrite(thisPin, LOW);
}

// 从7-2:
for (int thisPin = 7; thisPin >= 2; thisPin--) {
// 将LED打开:
digitalWrite(thisPin, HIGH);
delay(timer);
// 将LED关闭:
digitalWrite(thisPin, LOW);
}
} 
0
分享到:

评论0

请先

原Arduino365.com域名更改为品牌域名ultirobot.com,承载内容要将更丰富,网站也进行了改版,改善阅读体验。
没有账号? 忘记密码?