3840那里是固定的循环次数,我想让它变为,开关按下,停止循环,开关弹起,继续循环
时间: 2023-06-23 14:52:52 浏览: 45
如果要让循环次数根据开关状态动态变化,可以使用一个变量来保存当前的状态,如果开关被按下,则将这个变量设置为`true`,否则设置为`false`。在循环中添加一个判断语句,如果这个变量为`false`,则结束循环。
修改后的代码如下所示:
```
void loop() {
int fadeAmount = 5;
val = digitalRead(pin); // 读取模拟接口的值
Serial.println(val);// 输出模拟接口的值
static bool isRunning = false; // 保存循环状态
if (val == HIGH) { // 如果Pin10检测的值为高电平,点亮LED
isRunning = true; // 开始循环
for (int i = 0; i < LED_COUNT_1; i++) {
leds_1[i] = CRGB::White;
FastLED.show();
delay(25);
leds_1[i] = CRGB::Black;
}
} else { // 如果为低电平,熄灭LED
isRunning = false; // 停止循环
}
if (isRunning) { // 如果循环状态为true,则执行下面的代码
for (int i = 0; i < 3840; i++) {
int brightness_1 = (exp(sin(i / 50.0 * PI)) - 0.36787944) * 108.0;
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j].setRGB(brightness_1, 0, 0); // 红色通道
leds_1[j].setRGB(0, brightness_1, 0); // 绿色通道
leds_1[j].setRGB(0, 0, brightness_1); // 蓝色通道
}
FastLED.show();
delay(10);
if (!isRunning) { // 如果循环状态变为false,则跳出循环
break;
}
}
}
}
```
需要注意的是,上述代码中使用了一个静态变量`isRunning`来保存循环状态,这个变量在函数内部定义,每次函数调用时都会被初始化为`false`。如果需要在其他函数中使用这个变量的值,可以将它定义为全局变量。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)