编写程序,按键控制花样霓虹灯电路。要求:不按按键,霓虹灯全部点亮;按下按键,
时间: 2024-04-05 11:09:51 浏览: 25
霓虹灯呈现不同花样,并且每次按下按键,花样循环切换。
以下是一个基于Arduino的代码实现,使用了4个LED和1个按钮:
```
const int LED1 = 2;
const int LED2 = 3;
const int LED3 = 4;
const int LED4 = 5;
const int BUTTON = 6;
int pattern = 1;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
if (digitalRead(BUTTON) == HIGH) {
pattern = pattern % 4 + 1;
delay(200);
}
switch (pattern) {
case 1:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
break;
case 2:
digitalWrite(LED1, HIGH);
delay(100);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(100);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
delay(100);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
delay(100);
digitalWrite(LED4, LOW);
break;
case 3:
for (int i = 2; i < 6; i++) {
digitalWrite(i, HIGH);
delay(100);
digitalWrite(i, LOW);
}
for (int i = 5; i > 1; i--) {
digitalWrite(i, HIGH);
delay(100);
digitalWrite(i, LOW);
}
break;
case 4:
for (int i = 2; i < 6; i++) {
digitalWrite(i, HIGH);
delay(100);
}
for (int i = 5; i > 1; i--) {
digitalWrite(i, LOW);
delay(100);
}
for (int i = 2; i < 6; i++) {
digitalWrite(i, LOW);
delay(100);
}
for (int i = 5; i > 1; i--) {
digitalWrite(i, HIGH);
delay(100);
}
break;
}
}
```
在这个程序中,我们定义了4个LED和1个按钮的引脚号码,并在`setup()`函数中将它们设置为输出或输入模式。在`loop()`函数中,我们首先检查按钮是否被按下,如果是,则将花样切换到下一个,然后延迟一段时间以防止按键弹跳。然后根据当前的花样,控制LED的状态以呈现不同的花样。
每个花样都有不同的LED状态控制顺序和延迟时间,以实现不同的效果。花样切换是通过对`pattern`变量取模并加1实现的。在这个程序中,我们实现了4个不同的花样,但你可以根据自己的需要添加更多的花样或修改现有的花样。
阅读全文