const int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
const int numLeds = 10;
const int directionButtonPin = 12;
const int speedPotPin = A0;
const int brightnessPin = A1;
bool forward = true;
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
pinMode(directionButtonPin, INPUT_PULLUP); // 将方向按钮引脚设置为输入模式,并启用内部上拉电阻
}
void loop() {
for (int i = 0; i < numLeds; i++) {
while (digitalRead(directionButtonPin) == LOW) {
delay(200);
if (digitalRead(directionButtonPin) == HIGH) {
forward = !forward;
break;
}
}
int ledNow;
if (!forward) {
ledNow = ledPins[i];
} else {
ledNow = ledPins[numLeds - 1 - i];
}
int b = map(analogRead(brightnessPin), 0, 1023, 0, 10000);
digitalWrite(ledNow, HIGH);
delayMicroseconds(b);
digitalWrite(ledNow, LOW);
delayMicroseconds(10000 - b);
delay(map(analogRead(speedPotPin), 0, 1023, 1000, 1));
}
}