color_blend_state extended from 0-255 to 0-1023 to allow slower / smoother effects.
This commit is contained in:
41
src/main.cpp
41
src/main.cpp
@ -16,6 +16,8 @@ CRGB leds[LED_COUNT];
|
||||
|
||||
AnimationMode mode = AM_CORNERS;
|
||||
|
||||
unsigned long last_loop = 0;
|
||||
|
||||
#ifdef TEST_MODE
|
||||
uint8_t base_hue = 0;
|
||||
#endif
|
||||
@ -70,6 +72,7 @@ void setup_fastled() {
|
||||
LOGln("LEDs: %3d", LED_COUNT);
|
||||
FastLED.setBrightness(255);
|
||||
FastLED.setDither(DISABLE_DITHER);
|
||||
FastLED.setMaxPowerInVoltsAndMilliamps(5, MAX_MILLIAMPS);
|
||||
set_all_leds(CRGB::Black);
|
||||
}
|
||||
|
||||
@ -116,31 +119,55 @@ void loop() {
|
||||
}
|
||||
#else
|
||||
// Normal mode
|
||||
EVERY_N_MILLISECONDS(40 / SPEEDUP) {
|
||||
EVERY_N_MILLISECONDS(20 / SPEEDUP) {
|
||||
looping = false;
|
||||
|
||||
if (mode == AM_CORNERS) {
|
||||
if (mode == AM_CORNERS || mode == AM_FIRST_CORNER) {
|
||||
for(Corner* corner: corners) {
|
||||
corner->step();
|
||||
corner->infect(75, 200);
|
||||
if (mode == AM_FIRST_CORNER) {
|
||||
corner->infect(512, 512);
|
||||
} else {
|
||||
corner->infect(300, 600);
|
||||
}
|
||||
looping |= !corner->is_finished();
|
||||
corner->draw();
|
||||
}
|
||||
|
||||
if (random8(128)==0) {
|
||||
corners[random16(corners.size())]->blend_to(CHSV(random8(), 255, 255));
|
||||
if (mode == AM_FIRST_CORNER) {
|
||||
corners[0]->blend_to(CHSV(random8(), 255, 255));
|
||||
} else {
|
||||
corners[random16(corners.size())]->blend_to(CHSV(random8(), 255, 255));
|
||||
}
|
||||
}
|
||||
} else if (mode == AM_NODES) {
|
||||
} else if (mode == AM_NODES || mode == AM_FIRST_NODE) {
|
||||
for(Node* node : nodes) {
|
||||
node->step();
|
||||
node->infect(128);
|
||||
node->infect(512);
|
||||
node->draw();
|
||||
}
|
||||
|
||||
if (random8(128)==0) {
|
||||
nodes[random8(nodes.size())]->blend_to(CHSV(random8(), 255, 255));
|
||||
if (mode == AM_FIRST_NODE) {
|
||||
nodes[0]->blend_to(CHSV(random8(), 255, 255));
|
||||
} else {
|
||||
nodes[random8(nodes.size())]->blend_to(CHSV(random8(), 255, 255));
|
||||
}
|
||||
}
|
||||
} else if (mode == AM_FLASH) {
|
||||
for (Node* node : nodes) {
|
||||
node->step();
|
||||
node->infect(512);
|
||||
node->draw();
|
||||
}
|
||||
|
||||
if (millis() / 1000 > last_loop / 1000) {
|
||||
nodes[0]->blend_to(((millis() / 1000) % 2 == 0) ? CRGB::Black : CRGB::Orange, 0, 64);
|
||||
}
|
||||
}
|
||||
|
||||
last_loop = millis();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user