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));
  }
}
$abcdeabcde151015202530354045505560fghijfghij