diff --git a/arduino/mqttfastledmenu/mqttfastledmenu.cpp b/arduino/mqttfastledmenu/mqttfastledmenu.cpp index 452d08f..c4a2d05 100644 --- a/arduino/mqttfastledmenu/mqttfastledmenu.cpp +++ b/arduino/mqttfastledmenu/mqttfastledmenu.cpp @@ -170,7 +170,7 @@ void ledCylon() if (ledEffect != LED_EFFECT_CYLON) { return; } - + if ((i - 3) >= 0) { leds[i - 3] = CRGB::Black; } @@ -179,9 +179,11 @@ void ledCylon() * Se lit 128/256 d'intensité lumineuse actuelle * https://github.com/FastLED/FastLED/wiki/Pixel-reference#dimming-and-brightening-colors */ - leds[i - 2].fadeLightBy(240); + leds[i - 2] = color; + leds[i - 2].fadeLightBy(220); } if ((i - 1) >= 0) { + leds[i - 1] = color; leds[i - 1].fadeLightBy(200); } @@ -191,40 +193,44 @@ void ledCylon() leds[i + 1] = color; // Je suis volontairement un peu moins puissant sur l'avant // pour donner un effet de trainée sur l'arrière - leds[i + 1].fadeLightBy(220); - } - if ((i + 2) <= LED_NUM) { - leds[i + 2] = color; - leds[i + 2].fadeLightBy(240); + leds[i + 1].fadeLightBy(249); } FastLED.delay(1000 / speed); } + // Il faut nettoyer certaines cases avant la prochaine loop +if ((LED_NUM - 2) >= 0) { + leds[LED_NUM - 2] = color; + leds[LED_NUM - 2].fadeLightBy(220); + } + if ((LED_NUM - 1) >= 0 ) { + leds[LED_NUM - 1] = CRGB::Black; + } + FastLED.show(); + // led[0] et led[255] sont gérées par la loop précédante - for(int i = LED_NUM - 1; i > 0; i--) { + for(int i = LED_NUM - 1; i >= 0; i--) { client.loop(); if (ledEffect != LED_EFFECT_CYLON) { return; } - if ((i - 2) >= 0) { - leds[i - 2] = color; - leds[i - 2].fadeLightBy(240); - } if ((i - 1) >= 0) { leds[i - 1] = color; - leds[i - 1].fadeLightBy(220); + leds[i - 1].fadeLightBy(249); } leds[i] = color; if ((i + 1) <= LED_NUM) { + leds[i + 1] = color; leds[i + 1].fadeLightBy(200); } if ((i + 2) <= LED_NUM) { - leds[i + 2].fadeLightBy(240); + leds[i + 2] = color; + leds[i + 2].fadeLightBy(220); } if ((i + 3) <= LED_NUM) { leds[i + 3] = CRGB::Black; @@ -232,6 +238,15 @@ void ledCylon() FastLED.delay(1000 / speed); } + // Il faut nettoyer certaines cases avant la prochaine loop + if (1 <= LED_NUM) { + leds[1] = color; + leds[1].fadeLightBy(220); + } + if (2 <= LED_NUM) { + leds[2] = CRGB::Black; + } + FastLED.show(); } /**