From fa2c26baaead77cc733fe233b9eebc15e8116092 Mon Sep 17 00:00:00 2001 From: gunner47 Date: Mon, 16 Sep 2019 11:30:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=8D=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D1=8D=D1=84?= =?UTF-8?q?=D1=84=D0=B5=D0=BA=D1=82=20=D0=B1=D0=B5=D0=BB=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D1=81=D0=B2=D0=B5=D1=82=D0=B0=20(=D0=B3=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B7=D0=BE=D0=BD=D1=82=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BE=D1=81=D0=BE=D0=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/GyverLamp_v1.4/effectTicker.ino | 2 +- firmware/GyverLamp_v1.4/effects.ino | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/firmware/GyverLamp_v1.4/effectTicker.ino b/firmware/GyverLamp_v1.4/effectTicker.ino index d8fdcf8..37e343f 100644 --- a/firmware/GyverLamp_v1.4/effectTicker.ino +++ b/firmware/GyverLamp_v1.4/effectTicker.ino @@ -33,7 +33,7 @@ void effectsTick() case EFF_LIGHTER_TRACES: ballsRoutine(); break; case EFF_PAINTBALL: lightBallsRoutine(); break; case EFF_CUBE: ballRoutine(); break; - case EFF_WHITE_COLOR: whiteColorRoutine(); break; + case EFF_WHITE_COLOR: whiteColorStripeRoutine(); break; default: break; } FastLED.show(); diff --git a/firmware/GyverLamp_v1.4/effects.ino b/firmware/GyverLamp_v1.4/effects.ino index d2b6aa9..02cebb2 100644 --- a/firmware/GyverLamp_v1.4/effects.ino +++ b/firmware/GyverLamp_v1.4/effects.ino @@ -662,14 +662,11 @@ void whiteColorRoutine() } } -// ------------- экспериментальный эффект ------------- -// ------------- белый свет (уменьшение яркости по горизинтали от центра вверх и вниз; масштаб - ширина центральной полосы максимальной яркости; яркость - общая яркость ------------- -#define MINIMUM_BRIGHTNES (90U) // минимальная яркость (ниже матрица мерцает) -void whiteColorRoutine2() +// ------------- белый свет (светится горизонтальная полоса по центру лампы; масштаб - высота центральной горизонтальной полосы; яркость - общая яркость) ------------- +void whiteColorStripeRoutine() { if (loadingFlag) { - Serial.println("Отрисовка"); loadingFlag = false; FastLED.clear(); delay(1); @@ -679,12 +676,9 @@ void whiteColorRoutine2() for (int16_t y = centerY; y >= 0; y--) { CRGB color = CHSV(100, 1, - constrain(uint8_t( // определяем яркость - modes[EFF_WHITE_COLOR].Brightness * (y + 1) / (centerY + 1) + // влияние координаты Y на яркость (плавное затухаие вверх и вниз) - modes[EFF_WHITE_COLOR].Brightness * modes[EFF_WHITE_COLOR].Scale / 100), // влияние масштаба на яркость - MINIMUM_BRIGHTNES, - max((uint8_t)MINIMUM_BRIGHTNES, (uint8_t)modes[EFF_WHITE_COLOR].Brightness) - )); + y == centerY // определяем яркость + ? 255 // для центральной горизонтальной полосы (или двух) яркость всегда равна 255 + : (modes[EFF_WHITE_COLOR].Scale / 100.0F) > ((centerY + 1) - (y + 1.0F)) / (centerY + 1.0F) ? 255 : 0); // для остальных горизонтальных полос яркость равна либо 255, либо 0 в зависимости от масштаба for (uint8_t x = 0; x < WIDTH; x++) {