私は問題があります。Arduino を使用して WS2812B を制御していますが、呼吸効果に問題があります。次のようなコードでクラスを作成しました。
String breathDirection = "Down";
void breath_effect()
{
fill_solid(leds, TOTAL_LEDS, primary);
float currentBrightness = FastLED.getBrightness();
if (currentBrightness <= 1)
{
breathDirection = "Up";
}
else if (currentBrightness >= brightness)
{
breathDirection = "Down";
}
float brightnessCorrection = static_cast<float>(brightness) / 200;
if (breathDirection == "Down")
{
currentBrightness = currentBrightness - brightnessCorrection;
FastLED.setBrightness(currentBrightness);
}
else if (breathDirection == "Up")
{
Serial.println("Binnen");
Serial.println(currentBrightness);
currentBrightness = currentBrightness + brightnessCorrection;
Serial.println(currentBrightness);
FastLED.setBrightness(currentBrightness);
}
}
brightness
変数が 200 に設定されている場合にのみ呼吸効果が機能するようになりました。200 未満の別の値に設定すると、値は下がりますが、上昇することはありません。currentBrightness は、それぞれ同じ値に丸められます。ここで何がうまくいかないのですか?