// L1-012 8灯中心向两侧扩散灯光【教师完整版·对称算法版】
// 阵列顺序:0红、1橙、2黄、3绿、4青、5蓝、6紫、7白
// 中心点位:3、4 双向同步向外扩散
const int ledPins[] = {13,12,11,10,9,8,7,6};
const int ledCount = sizeof(ledPins) / sizeof(ledPins[0]);
// 扩散延时速度
const int spreadSpeed = 250;
void setup() {
// 批量初始化所有引脚为输出
for(int i = 0; i < ledCount; i++){
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
// 双向扩散偏移量:从中心向外逐层偏移
for(int offset = 0; offset <= 3; offset++){
// 每次刷新先全灭所有灯,杜绝残影混亮
for(int i = 0; i < ledCount; i++){
digitalWrite(ledPins[i], LOW);
}
// 点亮左侧对称点位
digitalWrite(ledPins[3 - offset], HIGH);
// 点亮右侧对称点位
digitalWrite(ledPins[4 + offset], HIGH);
delay(spreadSpeed);
}
}