0

以前にコーディングしたことはありません。このコードにフェード機能を追加するのに問題があります。50の制限を追加しました。制限に近づくほどLEDを暗くしたいです。ただし、ライトは 50 を超えると切れます。これも私が探しているものです。SHARP 2Y0A02 F 26 IR センサーを使用して距離を測定しています。

私はさまざまな IF ループを試しましたが、成功しませんでした。制限なしでコードを試してみると、かなりうまくフェードしますが、制限内で同じ効果が必要です。

#define sensor A0 // Sharp IR 2Y0A02 F 26
int led = 6;
int brightness = 0;

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop() {

analogWrite(led, brightness);

  // 5v
float volts = analogRead(sensor) * 0.0048828125; // value from sensor     * (5/1024)
int distance = 9462/(analogRead(sensor) - 16.92); // Distance in CM
int fade = distance;

delay(1000); // slow down serial port

if (distance <= 50) {
  brightness = -distance;
}
else {
  brightness = 0;
}

Serial.println(distance);   // print the distance
}

ライトは 50 で非常に暗くなり、オブジェクトが 0 に近づくと徐々に明るくなると思います。

4

0 に答える 0