欢迎光临
我们一直在努力

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

你可能经常需要对一系列引脚进行迭代,来实现对这些引脚逐个进行操作。例如:本例中使用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);
}

未经允许不得转载:Arduino-Maker » 控制部分-循环迭代(霹雳游侠)

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育