diff --git a/arduino/mqttfastledmenu/mqttfastledmenu.cpp b/arduino/mqttfastledmenu/mqttfastledmenu.cpp index c04c9af..cc5cfd7 100644 --- a/arduino/mqttfastledmenu/mqttfastledmenu.cpp +++ b/arduino/mqttfastledmenu/mqttfastledmenu.cpp @@ -166,33 +166,73 @@ void ledBlackAll() FastLED.show(); } +// TODO : faudra sortir toutes ces fonctions dans un autre fichier + void ledCylon() { // Effet cylon : on allume une led, on attends, on eteinds, on passe à la suivante for(int i = 0; i < LED_NUM; i++) { client.loop(); + if (ledEffect != LED_EFFECT_CYLON) { return; } + if ((i - 3) >= 0) { + leds[i - 3] = CRGB::Black; + } + if ((i - 2) >= 0) { + /* + * Se lit 204/256 d'intensité lumineuse + * àhttps://github.com/FastLED/FastLED/wiki/Pixel-reference#dimming-and-brightening-colors + */ + leds[i - 2] %= 204; + } + if ((i - 2) >= 1) { + leds[i - 2] %= 153; + } + leds[i] = color; - FastLED.delay(1000 / speed); - leds[i] = CRGB::Black; + + if ((i + 1) <= LED_NUM) { + leds[i - 2] %= 153; + } + if ((i + 2) <= LED_NUM) { + leds[i - 2] %= 204; + } + FastLED.delay(1000 / speed); } + // led[0] et led[255] sont gérées par la loop précédante for(int i = LED_NUM - 1; i > 0; i--) { client.loop(); - if (ledEffect != LED_EFFECT_CYLON) { - return; + + if ((i - 2) >= 0) { + /* + * Se lit 204/256 d'intensité lumineuse + * àhttps://github.com/FastLED/FastLED/wiki/Pixel-reference#dimming-and-brightening-colors + */ + leds[i - 2] %= 204; + } + if ((i - 2) >= 1) { + leds[i - 2] %= 153; } leds[i] = color; + + if ((i + 1) <= LED_NUM) { + leds[i - 2] %= 153; + } + if ((i + 2) <= LED_NUM) { + leds[i - 2] %= 204; + } + if ((i + 3) <= LED_NUM) { + leds[i - 3] = CRGB::Black; + } + FastLED.delay(1000 / speed); - leds[i] = CRGB::Black; - FastLED.show(); } - FastLED.delay(1000 / speed); } void ledError()