Arduino - 关闭所有LED但保持自动化

时间:2016-11-26 04:28:41

标签: c# arduino

我需要将所有LED设置为LOW,除了我想要处于HIGH状态的LED。 目前,我必须向所有LED发送特定请求,以确保先前的LED将设置为LOW。如果我将这个逻辑应用于很多LED,代码将会很长。

有没有办法说出来

问题

  • 设定领先,但所有其他人都处于低位?

此代码将打开led。

if (readString.indexOf("?wall01_02") > 0) {
        digitalWrite(led, HIGH);
        digitalWrite(led1, LOW);
        digitalWrite(led2, LOW);
        digitalWrite(led3, LOW);

下次我要向led1发送请求,但我也必须关闭之前的LED指示灯。

 if (readString.indexOf("?wall01_01") > 0) {
            digitalWrite(led, LOW);
            digitalWrite(led1, HIGH);
            digitalWrite(led2, LOW);
            digitalWrite(led3, LOW);

1 个答案:

答案 0 :(得分:2)

我无法发表评论。

为什么不是int数组,如下所示:

#define ledArray 4
int ledPins[ledArray] = {1, 3, 7, 14};

if(readString.indexOf("?wall01_02") > 0) {
    lightsOff(led);
}

if(readString.indexOf("?wall01_01") > 0) {
    lightsOff(led1);
}

void lightsOff(int led) {
    int i;
    for(i = 0; i < ledArray; ++i) {
        digitalWrite(ledPins[i], (ledPins[i] != led) ? LOW : HIGH);
    }
}