arduino按键控制4个流水灯
时间: 2023-12-10 09:06:24 浏览: 259
按键控制流水灯
4星 · 用户满意度95%
可以使用以下代码实现按键控制4个LED灯的流水效果:
```
const int buttonPin = 2; // 按钮输入引脚
const int ledPin1 = 3; // LED1输出引脚
const int ledPin2 = 4; // LED2输出引脚
const int ledPin3 = 5; // LED3输出引脚
const int ledPin4 = 6; // LED4输出引脚
int buttonState = 0; // 按钮状态
int ledState = HIGH; // LED状态
int counter = 0; // 计数器
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
counter++;
if (counter > 4) {
counter = 1;
}
}
switch(counter) {
case 1:
digitalWrite(ledPin1, ledState);
delay(100);
digitalWrite(ledPin1, !ledState);
digitalWrite(ledPin2, ledState);
delay(100);
digitalWrite(ledPin2, !ledState);
digitalWrite(ledPin3, ledState);
delay(100);
digitalWrite(ledPin3, !ledState);
digitalWrite(ledPin4, ledState);
delay(100);
digitalWrite(ledPin4, !ledState);
break;
case 2:
digitalWrite(ledPin1, !ledState);
digitalWrite(ledPin2, ledState);
delay(100);
digitalWrite(ledPin2, !ledState);
digitalWrite(ledPin3, ledState);
delay(100);
digitalWrite(ledPin3, !ledState);
digitalWrite(ledPin4, ledState);
delay(100);
digitalWrite(ledPin4, !ledState);
break;
case 3:
digitalWrite(ledPin1, !ledState);
digitalWrite(ledPin2, !ledState);
digitalWrite(ledPin3, ledState);
delay(100);
digitalWrite(ledPin3, !ledState);
digitalWrite(ledPin4, ledState);
delay(100);
digitalWrite(ledPin4, !ledState);
break;
case 4:
digitalWrite(ledPin1, !ledState);
digitalWrite(ledPin2, !ledState);
digitalWrite(ledPin3, !ledState);
digitalWrite(ledPin4, ledState);
delay(100);
digitalWrite(ledPin4, !ledState);
break;
}
}
```
在上述代码中,我们首先定义了按钮输入引脚和4个LED输出引脚,并在 `setup()` 函数中将它们分别设置为输入和输出模式。然后在 `loop()` 函数中,我们首先读取按钮状态,并根据按钮状态的改变来控制计数器的值,从而切换不同的LED流水灯效果。其中,计数器的值从1到4循环,对应着不同的LED流水灯效果。在每个LED流水灯效果中,我们使用 `digitalWrite()` 函数来控制LED的亮灭,并使用 `delay()` 函数来控制LED切换的时间间隔。
阅读全文