// L1-013 8灯两侧向中心汇聚灯光【教师完整版·逆向对称算法】
// 阵列索引:0红、1橙、2黄、3绿、4青、5蓝、6紫、7白
// 特效逻辑:两端点亮 → 逐层向内收敛 → 中心汇聚
const int ledPins[] = {13,12,11,10,9,8,7,6};
const int ledCount = sizeof(ledPins) / sizeof(ledPins[0]);
// 汇聚延时速度
const int gatherSpeed = 250;
void setup() {
// 批量初始化所有引脚为输出模式
for(int i = 0; i < ledCount; i++){
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
// 偏移量从最大层级向内递减,实现汇聚效果
for(int offset = 3; offset >= 0; offset--){
// 全局灭灯,清除上一层级残影
for(int i = 0; i < ledCount; i++){
digitalWrite(ledPins[i], LOW);
}
// 左右对称点位向内收敛
digitalWrite(ledPins[offset], HIGH);
digitalWrite(ledPins[7 - offset], HIGH);
delay(gatherSpeed);
}
}