不对啊
很抱歉代码没有满足你的需求。以下为你重新提供不同平台下,让 8 个 LED 依次从两边向中间点亮的代码。 Arduino 平台 ```cpp const int ledPins[8] = {2, 3, 4, 5, 6, 7, 8, 9}; void setup() { for (int i = 0; i < 8; i++) { pinMode(ledPins[i], OUTPUT); } } void loop() { int left = 0; int right = 7; while (left <= right) { digitalWrite(ledPins[left], HIGH); if (left != right) { digitalWrite(ledPins[right], HIGH); } delay(500); left++; right--; } left = 0; right = 7; while (left <= right) { digitalWrite(ledPins[left], LOW); if (left != right) { digitalWrite(ledPins[right], LOW); } delay(500); left++; right--; } } ``` 代码解释: - 在 `setup` 函数里,把 8 个 LED 对应的引脚都设为输出模式。 - `loop` 函数中,先定义两个变量 `left` 和 `right` 分别指向最左边和最右边的 LED。用 `while` 循环从两边向中间依次点亮 LED,每次点亮左右对应的 LED 并延迟 500 毫秒,然后移动指针。之后再用一个 `while` 循环从两边向中间依次熄灭 LED。 Python + Raspberry Pi GPIO 平台 ```python import RPi.GPIO as GPIO import time # 设置 GPIO 模式 GPIO.setmode(GPIO.BCM) # 定义 8 个 LED 对应的 GPIO 引脚 led_pins = [2, 3, 4, 17, 27, 22, 5, 6] # 设置所有引脚为输出模式 for pin in led_pins: GPIO.setup(pin, GPIO.OUT) try: while True: left = 0 right = 7 while left <= right: GPIO.output(led_pins[left], GPIO.HIGH) if left != right: GPIO.output(led_pins[right], GPIO.HIGH) time.sleep(0.5) left += 1 right -= 1 left = 0 right = 7 while left <= right: GPIO.output(led_pins[left], GPIO.LOW) if left != right: GPIO.output(led_pins[right], GPIO.LOW) time.sleep(0.5) left += 1 right -= 1 except KeyboardInterrupt: print("程序被用户中断") finally: GPIO.cleanup() ``` 代码解释: - 导入必要的库,设置 GPIO 模式为 BCM 模式。 - 定义 8 个 LED 对应的 GPIO 引脚,并将这些引脚设为输出模式。 - 用 `try-except` 语句捕获用户的中断操作,在 `while` 循环中先从两边向中间点亮 LED,再从两边向中间熄灭 LED,每次操作后延迟 0.5 秒。 - 最后在 `finally` 语句里清理 GPIO 资源。 [2025-12-23 19:43:44 | AI问答 | 814点数解答]