Arduino流水呼吸灯控制三个灯,三个灯依次点亮,逐渐亮起逐渐变暗
时间: 2024-10-13 12:00:34 浏览: 139
单按钮控制的8个灯依次逐个点亮流水灯程序.rar-综合文档
在Arduino中,要实现三个灯的流水式呼吸灯效果,你可以使用类似下述的代码。首先,假设你有三个引脚分别连接了三个LED灯,我们可以创建一个名为`breathLight`的函数来控制它们的亮度变化。
```cpp
const int ledPin1 = 2; // 第一个LED
const int ledPin2 = 3; // 第二个LED
const int ledPin3 = 4; // 第三个LED
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
}
void breathLight(int duration, bool rising) {
int brightness = 0;
unsigned long startTime = millis();
while (true) {
if (rising && brightness < 255) { // 上升阶段
brightness++;
analogWrite(ledPin1, brightness);
analogWrite(ledPin2, brightness);
analogWrite(ledPin3, brightness);
if ((millis() - startTime) > duration) {
break;
}
} else if (!rising && brightness > 0) { // 下降阶段
brightness--;
analogWrite(ledPin1, brightness);
analogWrite(ledPin2, brightness);
analogWrite(ledPin3, brightness);
if ((millis() - startTime) > duration) {
break;
}
}
}
}
void loop() {
for (int i = 0; i <= 2; i++) { // 从第一个LED开始,每个循环结束就切换到下一个
breathLight(3000, true); // 持续3秒钟上升过程
breathLight(3000, false); // 接着3秒钟下降过程
}
}
```
这个代码会使得三个LED灯按顺序依次点亮,然后逐渐变暗,形成流动的呼吸灯效果。每次循环,`breathLight`函数会控制LED的亮度从0渐增到255(全亮)然后又返回0(关闭)。整个过程持续6秒钟(两个3秒周期)。
阅读全文