无法将LED置于“低”状态。

时间:2016-04-01 13:51:16

标签: arduino int switch-statement

我无法将随机LED指向“低”状态。如果LDRValue低于500.代码在该情况下不读取if语句。它将LED设置为“高”和“高”。并且读取光传感器的值,如果该值低于500,则LED必须“低”'然后另一个LED必须转向“高”状态。一遍又一遍。

int randNumber;
int LDR1 = A1;
int LDR2 = A2;
int LDR3 = A3;
int LDR4 = A4;
int LDR5 = A5;
int LS = 500;
int LDRValue = 0;

void setup() {
  Serial.begin(9600);
  randNumber = random(1, 6);
}

void loop() {  
switch (randNumber) {
case 1:
    digitalWrite(2, HIGH);
    LDRValue = analogRead(LDR1);
    Serial.println(LDRValue);
    if (LDRValue < LS) {
      digitalWrite(2, LOW);
    }
    break;
case 2:
    digitalWrite(3, HIGH);
    LDRValue = analogRead(LDR2);
    Serial.println(LDRValue);
    if (LDRValue < LS) {
      digitalWrite(3, LOW);
    }
    break;
case 3:
    digitalWrite(4, HIGH);
    LDRValue = analogRead(LDR3);
    Serial.println(LDRValue);
    if (LDRValue < LS) {
      digitalWrite(4, LOW);
    }
    break;
case 4:
    digitalWrite(5, HIGH);
    LDRValue = analogRead(LDR4);
    Serial.println(LDRValue);
    if (LDRValue < LS) {
      digitalWrite(5, LOW);
    }
    break;
case 5:
    digitalWrite(6, HIGH);
    LDRValue = analogRead(LDR5);
    Serial.println(LDRValue);
    if (LDRValue < LS) {
      digitalWrite(6, LOW);
    }
    break;
}
}

1 个答案:

答案 0 :(得分:0)

重写您的case语句,如下所示:

case 5:    
    LDRValue = analogRead(LDR5);
    Serial.println(LDRValue);
    if (LDRValue < LS) 
    {
        digitalWrite(6, LOW);
    }
    else
    {
        digitalWrite(6, HIGH);
    }
    break;