const int pingPin = 7;
const int ledPin = 11;
const int ledPin2 = 10;
int ledLevel = 0;
int ledLevel2 = 255;
int constraint = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
constraint = constrain(duration, 500, 8000);
ledLevel = map(constraint, 500, 8000, 255, 0);
if (ledLevel < 192) {
analogWrite(ledPin, ledLevel);
ledLevel2 = ledLevel2 - 255;
} else if (ledlevel >= 192) {
analogWrite(ledPin, ledLevel);
analogWrite(ledPin2, ledLevel2);
}
Serial.println(duration);
delay(100);
}
这是我为arduino设计的代码,当有人开始朝超声波传感器行走时,它打开了一个LED,而当他们获得3/4时,它打开了第二个LED。当我尝试对其进行编译时,出现“在此范围内未声明'ledLevel'”,并突出显示了else if语句。
最佳答案
else if (ledlevel >= 192)
ledLevel而不是ledlevel(L为大写)
它应该是
else if (ledLevel >= 192)
关于compiler-errors - arduino else if语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13793964/