mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-08 17:30:59 +03:00
Добавлена регулировка "холодный - тёплый" для белого света
This commit is contained in:
@@ -662,7 +662,7 @@ void whiteColorRoutine()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------- белый свет (светится горизонтальная полоса по центру лампы; масштаб - высота центральной горизонтальной полосы; яркость - общая яркость) -------------
|
// ------------- белый свет (светится горизонтальная полоса по центру лампы; масштаб - высота центральной горизонтальной полосы; скорость - регулировка от холодного к тёплому; яркость - общая яркость) -------------
|
||||||
void whiteColorStripeRoutine()
|
void whiteColorStripeRoutine()
|
||||||
{
|
{
|
||||||
if (loadingFlag)
|
if (loadingFlag)
|
||||||
@@ -672,13 +672,15 @@ void whiteColorStripeRoutine()
|
|||||||
delay(1);
|
delay(1);
|
||||||
|
|
||||||
uint8_t centerY = max((uint8_t)round(HEIGHT / 2.0F) - 1, 0);
|
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--)
|
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 // определяем яркость
|
y == centerY // определяем яркость
|
||||||
? 255 // для центральной горизонтальной полосы (или двух) яркость всегда равна 255
|
? 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++)
|
for (uint8_t x = 0; x < WIDTH; x++)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user