编写程序,按键控制花样霓虹灯电路。要求:不按按键,霓虹灯全部点亮;按下按键,
时间: 2024-04-05 12:12:38 浏览: 22
花样霓虹灯电路会进入循环模式,每次按键时,花样会切换一种不同的模式。
以下是一个基于Arduino的程序示例,可以控制8个LED灯(代表霓虹灯),并且可以通过按键控制花样:
```C++
const int BUTTON_PIN = 2; // 输入引脚
const int LED_PIN[] = {3, 4, 5, 6, 7, 8, 9, 10}; // 输出引脚
const int NUM_LEDS = 8; // 灯的数量
int led_pattern = 0; // 当前的花样模式
bool button_state = false; // 按键状态
bool last_button_state = false; // 上一次的按键状态
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP); // 配置输入引脚为上拉电阻
for (int i = 0; i < NUM_LEDS; i++) {
pinMode(LED_PIN[i], OUTPUT); // 配置所有输出引脚
}
}
void loop() {
button_state = digitalRead(BUTTON_PIN); // 读取按键状态
if (button_state == true && last_button_state == false) {
// 如果按键被按下了,就切换花样并更新LED状态
led_pattern = (led_pattern + 1) % 4;
update_leds(led_pattern);
}
last_button_state = button_state;
delay(50); // 延迟一段时间,防止按键抖动
}
void update_leds(int pattern) {
switch (pattern) {
case 0:
// 花样1:所有LED都点亮
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(LED_PIN[i], HIGH);
}
break;
case 1:
// 花样2:交替闪烁
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(LED_PIN[i], i % 2 == 0 ? HIGH : LOW);
}
break;
case 2:
// 花样3:从左往右依次点亮
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(LED_PIN[i], HIGH);
delay(100);
digitalWrite(LED_PIN[i], LOW);
}
break;
case 3:
// 花样4:随机闪烁
for (int i = 0; i < 20; i++) {
int random_led = random(NUM_LEDS);
digitalWrite(LED_PIN[random_led], HIGH);
delay(50);
digitalWrite(LED_PIN[random_led], LOW);
delay(50);
}
break;
}
}
```
在上面的示例中,我们使用了一个按钮来控制花样模式。当按下按钮时,程序会切换到下一个花样模式,并且每个模式都有不同的LED灯亮起方式。如果不按按钮,所有LED灯都会一直亮着。
这只是一个简单的示例,你可以根据自己的需要进行修改和扩展。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.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)