mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-08 09:20:59 +03:00
Добавлен экспериментальный эффект белого света (горизонтальной полосой)
This commit is contained in:
@@ -33,7 +33,7 @@ void effectsTick()
|
|||||||
case EFF_LIGHTER_TRACES: ballsRoutine(); break;
|
case EFF_LIGHTER_TRACES: ballsRoutine(); break;
|
||||||
case EFF_PAINTBALL: lightBallsRoutine(); break;
|
case EFF_PAINTBALL: lightBallsRoutine(); break;
|
||||||
case EFF_CUBE: ballRoutine(); break;
|
case EFF_CUBE: ballRoutine(); break;
|
||||||
case EFF_WHITE_COLOR: whiteColorRoutine(); break;
|
case EFF_WHITE_COLOR: whiteColorStripeRoutine(); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
FastLED.show();
|
FastLED.show();
|
||||||
|
@@ -662,14 +662,11 @@ void whiteColorRoutine()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------- экспериментальный эффект -------------
|
// ------------- белый свет (светится горизонтальная полоса по центру лампы; масштаб - высота центральной горизонтальной полосы; яркость - общая яркость) -------------
|
||||||
// ------------- белый свет (уменьшение яркости по горизинтали от центра вверх и вниз; масштаб - ширина центральной полосы максимальной яркости; яркость - общая яркость -------------
|
void whiteColorStripeRoutine()
|
||||||
#define MINIMUM_BRIGHTNES (90U) // минимальная яркость (ниже матрица мерцает)
|
|
||||||
void whiteColorRoutine2()
|
|
||||||
{
|
{
|
||||||
if (loadingFlag)
|
if (loadingFlag)
|
||||||
{
|
{
|
||||||
Serial.println("Отрисовка");
|
|
||||||
loadingFlag = false;
|
loadingFlag = false;
|
||||||
FastLED.clear();
|
FastLED.clear();
|
||||||
delay(1);
|
delay(1);
|
||||||
@@ -679,12 +676,9 @@ void whiteColorRoutine2()
|
|||||||
for (int16_t y = centerY; y >= 0; y--)
|
for (int16_t y = centerY; y >= 0; y--)
|
||||||
{
|
{
|
||||||
CRGB color = CHSV(100, 1,
|
CRGB color = CHSV(100, 1,
|
||||||
constrain(uint8_t( // определяем яркость
|
y == centerY // определяем яркость
|
||||||
modes[EFF_WHITE_COLOR].Brightness * (y + 1) / (centerY + 1) + // влияние координаты Y на яркость (плавное затухаие вверх и вниз)
|
? 255 // для центральной горизонтальной полосы (или двух) яркость всегда равна 255
|
||||||
modes[EFF_WHITE_COLOR].Brightness * modes[EFF_WHITE_COLOR].Scale / 100), // влияние масштаба на яркость
|
: (modes[EFF_WHITE_COLOR].Scale / 100.0F) > ((centerY + 1) - (y + 1.0F)) / (centerY + 1.0F) ? 255 : 0); // для остальных горизонтальных полос яркость равна либо 255, либо 0 в зависимости от масштаба
|
||||||
MINIMUM_BRIGHTNES,
|
|
||||||
max((uint8_t)MINIMUM_BRIGHTNES, (uint8_t)modes[EFF_WHITE_COLOR].Brightness)
|
|
||||||
));
|
|
||||||
|
|
||||||
for (uint8_t x = 0; x < WIDTH; x++)
|
for (uint8_t x = 0; x < WIDTH; x++)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user