我无法将随机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;
}
}
答案 0 :(得分:0)
重写您的case
语句,如下所示:
case 5:
LDRValue = analogRead(LDR5);
Serial.println(LDRValue);
if (LDRValue < LS)
{
digitalWrite(6, LOW);
}
else
{
digitalWrite(6, HIGH);
}
break;