基于ATMEGA328P用3个开关控制3个灯泡,灯泡只需要亮3秒,然后就关闭,再用一个总开关控制所有灯泡,三个开关同时按下去灯泡可以同时亮,在每一个灯泡加一个提示灯,不按下开关时候提示灯是亮的,按下去后提示灯是不亮的,再加一个总开关,可以把所有的灯关闭
时间: 2024-05-05 18:16:26 浏览: 11
以下是基于ATMEGA328P的代码:
```c
// 定义三个开关和一个总开关
#define SWITCH1 2
#define SWITCH2 3
#define SWITCH3 4
#define MASTER_SWITCH 5
// 定义三个灯泡和三个提示灯
#define LIGHT1 6
#define LIGHT2 7
#define LIGHT3 8
#define INDICATOR1 9
#define INDICATOR2 10
#define INDICATOR3 11
// 定义灯泡亮的时间
#define LIGHT_DURATION 3000
// 定义开关状态
bool switch1_state = false;
bool switch2_state = false;
bool switch3_state = false;
bool master_switch_state = false;
void setup() {
// 初始化开关和灯泡引脚为输入或输出
pinMode(SWITCH1, INPUT_PULLUP);
pinMode(SWITCH2, INPUT_PULLUP);
pinMode(SWITCH3, INPUT_PULLUP);
pinMode(MASTER_SWITCH, INPUT_PULLUP);
pinMode(LIGHT1, OUTPUT);
pinMode(LIGHT2, OUTPUT);
pinMode(LIGHT3, OUTPUT);
pinMode(INDICATOR1, OUTPUT);
pinMode(INDICATOR2, OUTPUT);
pinMode(INDICATOR3, OUTPUT);
// 初始化提示灯为亮
digitalWrite(INDICATOR1, LOW);
digitalWrite(INDICATOR2, LOW);
digitalWrite(INDICATOR3, LOW);
}
void loop() {
// 读取开关状态
switch1_state = digitalRead(SWITCH1);
switch2_state = digitalRead(SWITCH2);
switch3_state = digitalRead(SWITCH3);
master_switch_state = digitalRead(MASTER_SWITCH);
// 判断总开关状态
if (master_switch_state == LOW) {
// 关闭所有灯泡
digitalWrite(LIGHT1, LOW);
digitalWrite(LIGHT2, LOW);
digitalWrite(LIGHT3, LOW);
// 关闭所有提示灯
digitalWrite(INDICATOR1, HIGH);
digitalWrite(INDICATOR2, HIGH);
digitalWrite(INDICATOR3, HIGH);
} else {
// 判断开关1状态
if (switch1_state == LOW) {
// 点亮灯泡1
digitalWrite(LIGHT1, HIGH);
// 关闭提示灯1
digitalWrite(INDICATOR1, HIGH);
// 等待3秒
delay(LIGHT_DURATION);
// 关闭灯泡1
digitalWrite(LIGHT1, LOW);
// 打开提示灯1
digitalWrite(INDICATOR1, LOW);
}
// 判断开关2状态
if (switch2_state == LOW) {
// 点亮灯泡2
digitalWrite(LIGHT2, HIGH);
// 关闭提示灯2
digitalWrite(INDICATOR2, HIGH);
// 等待3秒
delay(LIGHT_DURATION);
// 关闭灯泡2
digitalWrite(LIGHT2, LOW);
// 打开提示灯2
digitalWrite(INDICATOR2, LOW);
}
// 判断开关3状态
if (switch3_state == LOW) {
// 点亮灯泡3
digitalWrite(LIGHT3, HIGH);
// 关闭提示灯3
digitalWrite(INDICATOR3, HIGH);
// 等待3秒
delay(LIGHT_DURATION);
// 关闭灯泡3
digitalWrite(LIGHT3, LOW);
// 打开提示灯3
digitalWrite(INDICATOR3, LOW);
}
}
}
```
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)