0
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用のコードです。誰かが超音波センサーに向かって歩き始めると、1つのLEDがオンになり、2番目のLEDがオンになる方法の3/4になるとオンになります。コンパイルしようとすると、「'ledLevel' はこのスコープで宣言されていません」というメッセージが表示され、else if ステートメントが強調表示されます。

4

1 に答える 1

5
else if (ledlevel >= 192)


ledlevel の代わりにledlevel ( L は大文字)

else if (ledLevel >= 192)
于 2012-12-10T01:57:43.080 に答える