LED流水灯编程测试

这个程序怎么编写啊
假设P0口连接了8个LED灯,如下图所示,请编写程序,实现相邻的2个LED灯左右来回移动,移动间隔时间为100ms

img

#include <stdio.h>
#include <wiringPi.h>

#define LED_NUM 8    // LED数量
#define DELAY_MS 100 // 移动间隔时间,单位:毫秒

int main(void) {
    int i, direction = 1;
    int ledPins[LED_NUM] = {0, 1, 2, 3, 4, 5, 6, 7}; // 连接LED灯的GPIO口

    wiringPiSetup(); // 初始化wiringPi库

    // 初始化LED灯的GPIO口
    for (i = 0; i < LED_NUM; i++) {
        pinMode(ledPins[i], OUTPUT);
    }

    // 左右移动LED灯
    while (1) {
        for (i = 0; i < LED_NUM; i++) {
            digitalWrite(ledPins[i], HIGH); // 打开当前LED灯

            if (i == 0) {
                direction = 1; // 从左向右移动
            } else if (i == LED_NUM - 1) {
                direction = -1; // 从右向左移动
            }

            delay(DELAY_MS); // 等待移动间隔时间

            digitalWrite(ledPins[i], LOW); // 关闭当前LED灯
            digitalWrite(ledPins[i + direction], HIGH); // 打开下一个LED灯
        }
    }

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^