You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
/*
|
|
Arrays
|
|
|
|
Demonstrates the use of an array to hold pin numbers
|
|
in order to iterate over the pins in a sequence.
|
|
Lights multiple LEDs in sequence, then in reverse.
|
|
|
|
Unlike the For Loop tutorial, where the pins have to be
|
|
contiguous, here the pins can be in any random order.
|
|
|
|
The circuit:
|
|
* LEDs from pins 2 through 7 to ground
|
|
|
|
created 2006
|
|
by David A. Mellis
|
|
modified 5 Jul 2009
|
|
by Tom Igoe
|
|
|
|
http://www.arduino.cc/en/Tutorial/Array
|
|
*/
|
|
|
|
int timer = 100; // The higher the number, the slower the timing.
|
|
int ledPins[] = {
|
|
2, 7, 4, 6, 5, 3 }; // an array of pin numbers to which LEDs are attached
|
|
int pinCount = 6; // the number of pins (i.e. the length of the array)
|
|
|
|
void setup() {
|
|
int thisPin;
|
|
// the array elements are numbered from 0 to (pinCount - 1).
|
|
// use a for loop to initialize each pin as an output:
|
|
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
|
|
pinMode(ledPins[thisPin], OUTPUT);
|
|
}
|
|
}
|
|
|
|
void loop() {
|
|
// loop from the lowest pin to the highest:
|
|
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
|
|
// turn the pin on:
|
|
digitalWrite(ledPins[thisPin], HIGH);
|
|
delay(timer);
|
|
// turn the pin off:
|
|
digitalWrite(ledPins[thisPin], LOW);
|
|
|
|
}
|
|
|
|
// loop from the highest pin to the lowest:
|
|
for (int thisPin = pinCount - 1; thisPin >= 0; thisPin--) {
|
|
// turn the pin on:
|
|
digitalWrite(ledPins[thisPin], HIGH);
|
|
delay(timer);
|
|
// turn the pin off:
|
|
digitalWrite(ledPins[thisPin], LOW);
|
|
}
|
|
}
|