基于atmega328p使用六个开关控制六个灯泡
时间: 2023-05-19 11:03:25 浏览: 68
可以使用以下代码实现:
```c
int switches[] = {2, 3, 4, 5, 6, 7}; // 6个开关的引脚
int bulbs[] = {8, 9, 10, 11, 12, 13}; // 6个灯泡的引脚
void setup() {
for (int i = 0; i < 6; i++) {
pinMode(switches[i], INPUT_PULLUP); // 设置开关引脚为输入模式,并开启上拉电阻
pinMode(bulbs[i], OUTPUT); // 设置灯泡引脚为输出模式
}
}
void loop() {
for (int i = 0; i < 6; i++) {
if (digitalRead(switches[i]) == LOW) { // 如果开关被按下
digitalWrite(bulbs[i], HIGH); // 点亮对应的灯泡
} else {
digitalWrite(bulbs[i], LOW); // 关闭对应的灯泡
}
}
}
```
这段代码使用了一个 for 循环来遍历 6 个开关和 6 个灯泡的引脚,如果开关被按下,就点亮对应的灯泡,否则关闭对应的灯泡。
相关问题
基于atmega328p使用六个开关控制制作六个灯泡,两个开关按下去都可以亮
答案:可以使用数字输入输出口(GPIO)来控制六个灯泡的亮灭,同时使用两个开关来控制两个GPIO的状态,从而实现两个开关都可以控制六个灯泡的亮灭。具体的实现方法需要根据具体的硬件和软件环境来确定,可以参考相关的开发文档和示例代码。
基于ATMEGA328P用六个开关控制六个灯,灯泡只需要亮3秒,然后就关闭
可以使用以下代码实现:
void setup() {
// 设置6个开关引脚为输入模式
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
// 设置6个灯引脚为输出模式
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
// 检测每个开关的状态
if (digitalRead(2) == HIGH) {
digitalWrite(8, HIGH);
delay(3000);
digitalWrite(8, LOW);
}
if (digitalRead(3) == HIGH) {
digitalWrite(9, HIGH);
delay(3000);
digitalWrite(9, LOW);
}
if (digitalRead(4) == HIGH) {
digitalWrite(10, HIGH);
delay(3000);
digitalWrite(10, LOW);
}
if (digitalRead(5) == HIGH) {
digitalWrite(11, HIGH);
delay(3000);
digitalWrite(11, LOW);
}
if (digitalRead(6) == HIGH) {
digitalWrite(12, HIGH);
delay(3000);
digitalWrite(12, LOW);
}
if (digitalRead(7) == HIGH) {
digitalWrite(13, HIGH);
delay(3000);
digitalWrite(13, LOW);
}
}