arduino开关控制流水灯,按一下亮,再按一下灭,不用for语句
时间: 2024-09-15 21:08:46 浏览: 85
在Arduino中,想要实现开关控制流水灯(LED灯逐个点亮或熄灭),而不需要使用`for`循环,可以采用基本的输入输出操作结合条件判断来实现。这里假设我们有一个按钮(如数字按钮)和多个LED灯(连接到Arduino的数字引脚)。
步骤如下:
1. **硬件连接**:
- 将按钮连接到Arduino的一个数字输入引脚(如D0~D13)上。
- LED灯串联起来,并通过电阻接到Arduino的另一个数字输出引脚(如D3~D13,注意不要超过板子的最大电流负载)。
2. **编写代码**:
```cpp
// 定义按键和LED灯变量
int buttonPin = D9; // 按钮引脚
int ledPin = D3; // 第一个LED灯引脚
void setup() {
pinMode(buttonPin, INPUT); // 设置按钮为输入模式
pinMode(ledPin, OUTPUT); // 设置LED灯为输出模式
}
void loop() {
// 读取按钮状态
int buttonState = digitalRead(buttonPin);
// 如果按钮按下( HIGH)
if (buttonState == HIGH) {
// 灯灭,将所有LED设为低电平
digitalWrite(ledPin, LOW);
for (int i = 4; i <= 13; ++i) { // 假设有10个LED灯
ledPin = D4 + i; // 更新LED灯引脚
digitalWrite(ledPin, LOW); // 灯灭
}
} else {
// 按钮释放,点亮下一个LED
ledPin++;
if (ledPin > 13) { // 防止超出范围
ledPin = 3; // 重新从第一个开始
}
digitalWrite(ledPin, HIGH); // 点亮当前LED
}
}
```
这个代码片段会在每次按下按钮时,依次切换LED灯的状态。当再次按下按钮时,会熄灭当前LED并切换到下一个。注意这里的`ledPin`是一个变量,用来动态更新LED灯的引脚。
阅读全文