// L1-007 4灯双向流水灯【数组进阶教师完整版】
// 引脚数组定义:红13、黄12、绿11、蓝10
const int ledPins[] = {13,12,11,10};
// 自适应计算LED数量
const int ledNum = sizeof(ledPins)/sizeof(ledPins[0]);
// 流水延时参数
const int speed = 500;
void setup(){
// 批量初始化所有引脚为输出
for(int i = 0; i < ledNum; i++){
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop(){
// ========== 正向流水:红 → 黄 → 绿 → 蓝 ==========
for(int i = 0; i < ledNum; i++){
// 全部熄灭
for(int j = 0; j < ledNum; j++){
digitalWrite(ledPins[j], LOW);
}
// 点亮当前LED
digitalWrite(ledPins[i], HIGH);
delay(speed);
}
// ========== 反向流水:蓝 → 绿 → 黄 → 红(去除首尾重复) ==========
for(int i = ledNum - 2; i > 0; i--){
// 全部熄灭
for(int j = 0; j < ledNum; j++){
digitalWrite(ledPins[j], LOW);
}
// 点亮当前LED
digitalWrite(ledPins[i], HIGH);
delay(speed);
}
}