我需要将所有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);
答案 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);
}
}