diff --git a/firmware/GyverLamp_v1.4/effects.ino b/firmware/GyverLamp_v1.4/effects.ino index 8ab1ae6..6fd26e3 100644 --- a/firmware/GyverLamp_v1.4/effects.ino +++ b/firmware/GyverLamp_v1.4/effects.ino @@ -662,7 +662,7 @@ void whiteColorRoutine() } } -// ------------- белый свет (светится горизонтальная полоса по центру лампы; масштаб - высота центральной горизонтальной полосы; яркость - общая яркость) ------------- +// ------------- белый свет (светится горизонтальная полоса по центру лампы; масштаб - высота центральной горизонтальной полосы; скорость - регулировка от холодного к тёплому; яркость - общая яркость) ------------- void whiteColorStripeRoutine() { if (loadingFlag) @@ -672,13 +672,15 @@ void whiteColorStripeRoutine() delay(1); uint8_t centerY = max((uint8_t)round(HEIGHT / 2.0F) - 1, 0); - uint8_t bottomOffset = (uint8_t)(!(HEIGHT & 1) && (HEIGHT > 1)); // если высота матрицы чётная, линий с максимальной яркостью две, а линии с угасающей яркостью снизу будут смещены на один ряд + uint8_t bottomOffset = (uint8_t)(!(HEIGHT & 1) && (HEIGHT > 1)); // если высота матрицы чётная, линий с максимальной яркостью две, а линии с минимальной яркостью снизу будут смещены на один ряд for (int16_t y = centerY; y >= 0; y--) { - CRGB color = CHSV(100, 1, + CRGB color = CHSV( + 45, // определяем тон + map(modes[EFF_WHITE_COLOR].Speed, 0, 255, 0, 170), // определяем насыщенность y == centerY // определяем яркость ? 255 // для центральной горизонтальной полосы (или двух) яркость всегда равна 255 - : (modes[EFF_WHITE_COLOR].Scale / 100.0F) > ((centerY + 1) - (y + 1.0F)) / (centerY + 1.0F) ? 255 : 0); // для остальных горизонтальных полос яркость равна либо 255, либо 0 в зависимости от масштаба + : (modes[EFF_WHITE_COLOR].Scale / 100.0F) > ((centerY + 1.0F) - (y + 1.0F)) / (centerY + 1.0F) ? 255 : 0); // для остальных горизонтальных полос яркость равна либо 255, либо 0 в зависимости от масштаба for (uint8_t x = 0; x < WIDTH; x++) {