Learning Examples | Foundations | Hacking | Links
Examples > Control Structures
数组
本例是For循环的另外一种用法,展示了如何何用数组。数组是多个相同类型变量的集合。若把变量比作一个可以放东西的杯子,那么数组就可以认为是一个可以放多件物品的托盘,它像是把许多杯子串起来,每个杯子装同样多的物品。
For循环例子展示了如何点亮连在2到7脚的诸多LED,该例子有一定的限制条件(引脚必须是连号的,并且LED也必须被顺序点亮)。
下面的例子将告诉你怎么点亮一系列引脚上的LED,而这些引脚无须是顺序、连号的。为了达到这个目标,需要将引脚号放在数组里,然后使用for循环来遍历数组。
本例中依旧使用2-7脚来驱动LED,与for循环的例子一样,不过点亮的顺序将由数组中的值决定,而非物理顺序。
将引脚号放到数组里的操作完全是手动的,你可以随意更改它们的顺序。
所需硬件
- Arduino板
- (6) 220欧姆电阻
- (6) LED
- 连接导线
- 面包板
电路图
将6个LED连上220欧姆电阻后,连至Arduino上的2-7脚。
点击图片放大浏览
使用Fritzing设计此图。请前往Fritzing项目主页寻找更多电路图样例。
示意图:
点击图片放大浏览
源代码
/*
数组
演示如何使用 一个数组来保存引脚号
进而遍历该数组
按数组保存的顺序点亮对应引脚上的LED,并反序
与for循环例子里引脚号必须连号不一样,
这里的引脚号可以随意排序
电路图:
* LED连到2-7脚后接GND
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/Array
*/
int timer = 100; // 数值越大,延时越慢
int ledPins[] = {
2, 7, 4, 6, 5, 3 }; //LED连接的引脚号数组
int pinCount = 6; // 引脚数量(数组长度)
void setup() {
int thisPin;
// 数组下标从0到(pinCount - 1).
// 使用for循环来把引脚初始化为OUTPUT
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
pinMode(ledPins[thisPin], OUTPUT);
}
}
void loop() {
// 从数组下标的最小值循环至最大值
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
// 引脚置为HIGH,点亮LED
digitalWrite(ledPins[thisPin], HIGH);
delay(timer);
// 引脚置为LOW,熄灭LED
digitalWrite(ledPins[thisPin], LOW);
}
// 从数组下标的最大值循环至最小值
for (int thisPin = pinCount - 1; thisPin >= 0; thisPin--) {
// 点亮LED
digitalWrite(ledPins[thisPin], HIGH);
delay(timer);
// 熄灭LED
digitalWrite(ledPins[thisPin], LOW);
}
}
See Also: