Arduino扩展板上如果共用一个数字端口 通过一个孔引出了两个插孔 定义输出 接2个不同的LED灯 如何在编程里区分
时间: 2024-09-30 22:13:26 浏览: 17
在Arduino扩展板上,如果你通过一个孔引出两个插孔,并将它们都连接到同一个数字端口,用来控制两个不同的LED灯,你需要在程序中为每个LED分配一个独立的标识符。尽管物理上它们共享一个引脚,但在编程层面可以采用以下策略:
1. **命名 convention** (命名约定):给这两个LED分配不同的名字,比如`led1` 和 `led2`,然后分别编写控制这两个LED的函数。
```c++
void setup() {
pinMode(LED_1_PIN, OUTPUT); // LED_1_PIN是led1对应的引脚
pinMode(LED_2_PIN, OUTPUT); // LED_2_PIN是led2对应的引脚
}
void loop() {
digitalWrite(LED_1_PIN, HIGH); // 控制led1亮起
delay(1000);
digitalWrite(LED_1_PIN, LOW); // led1熄灭
digitalWrite(LED_2_PIN, HIGH); // 控制led2亮起
delay(1000);
digitalWrite(LED_2_PIN, LOW); // led2熄灭
}
```
2. **索引号(Indexing)**:根据硬件布局或接线顺序,你可以使用数字索引来区别,例如`pinMode(digitPin++, OUTPUT)`。
3. **条件判断(Conditional statements)**: 如果你想在程序运行时动态切换LED,可以在循环中加入条件判断,如使用if-else结构。
```c++
void loop() {
if (digitalRead(pins[0]) == HIGH) { // pins[0]代表第一个LED引脚
digitalWrite(LED_1_PIN, HIGH);
} else if (digitalRead(pins[1]) == HIGH) { // pins[1]代表第二个LED引脚
digitalWrite(LED_2_PIN, HIGH);
}
delay(1000);
//...
}
```
在所有这些情况下,关键在于你在代码中清晰地表示了每个LED对应的动作,这样在调试和维护时也能容易理解。
阅读全文