Learning Examples | Foundations | Hacking | Links
Examples > Control Structures
For循环(霹雳游侠)
经常需要遍历一系列的引脚以对每个引脚进行处理工作,如此例中,使用for()循环遍历数字脚的2-7脚来驱动引脚上连接的LED。这些LED被digitalWrite()和delay() 函数控制着依次点亮和熄灭。
我们也叫这个例子为“霹雳游侠”" 以此纪念80年代的电视剧,此剧中David Hasselhoff拥有一部由人工智能KITT控制驾驶的Pontiac。该车装上了大量的LED来展示各种耀眼的特效,特别是用来显示KITT和KARR激烈斗争的来回扫描的特效。本例展示了KITT的显示效果。
所需硬件
- Arduino板
- (6) 220欧姆电阻
- (6) LEDs
- 连接导线
- 面包板
电路图
将6个LED分别连上220欧姆的电阻,然后接到Arduino的2-7脚。
点击图片放大浏览
使用Fritzing设计此图。请前往Fritzing项目主页寻找更多电路图样例。
示意图
点击图片放大浏览
源代码
下面的代码从for()
循环开始,将2-7脚设为OUTPUT模式,以驱动6个LED。
在主循环中,使用了两个for()
循环来一步一步地控制LED。当7脚上的LED被点亮后,循环将从头开始,周而复始。
/*
For循环
演示for循环的使用方法。
依次点亮LED,周而复始。
电路:
* LED接2脚至7脚,然后接地
created 2006
by David A. Mellis
modified 30 Aug 2011
by Tom Igoe
This example code is in the public domain.
http://arduino.cc/en/Tutorial/ForLoop
*/
int timer = 100; // 数值越高,点亮时间越长
void setup() {
// 使用for循环来初始化2-7脚为OUTPUT。
for (int thisPin = 2; thisPin < 8; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}
void loop() {
// 从最小的脚循环到最大的脚
for (int thisPin = 2; thisPin < 8; thisPin++) {
// 将引脚置为HIGH,点亮LED
digitalWrite(thisPin, HIGH);
delay(timer);
// 将引脚置为LOW,熄灭LED
digitalWrite(thisPin, LOW);
}
// 从最大的引脚循环到最小的脚
for (int thisPin = 7; thisPin >= 2; thisPin--) {
// 将引脚置为HIGH,点亮LED
digitalWrite(thisPin, HIGH);
delay(timer);
// 将引脚置为LOW,熄灭LED
digitalWrite(thisPin, LOW);
}
}
参考: