FastLED 3.10.8
Loading...
Searching...
No Matches

◆ loop()

void loop ( )

Definition at line 127 of file AnimartrixRing.ino.

127 {
128 // Poll rather than use onChanged(): a value the web UI restores (persisted
129 // or from the URL) can land before the first frame, where the change
130 // detector absorbs it into its baseline and never fires. Comparing against
131 // the animation we last pushed cannot miss it. Same pattern as
132 // examples/Animartrix/Animartrix.ino.
133 static int sLastFxIndex = -1;
134 if (fxIndex.as_int() != sLastFxIndex) {
135 sLastFxIndex = fxIndex.as_int();
136 animartrix->fxSet(sLastFxIndex);
137 }
138
139 fxEngine.setSpeed(timeSpeed.value());
140
141 // Draw the effect
142 fxEngine.draw(millis(), leds);
143
144 // Calculate final brightness
145 uint8_t finalBrightness;
146 if (autoBrightness.value()) {
147 float avgBri = getAverageBrightness(leds);
148 finalBrightness = applyBrightnessCompression(
149 avgBri, static_cast<uint8_t>(autoBrightnessMax.value()),
152 } else {
153 finalBrightness = static_cast<uint8_t>(brightness.value());
154 }
155
156 FastLED.setBrightness(finalBrightness);
157 FastLED.show();
158}
CRGB leds[1]
fl::FxEngine fxEngine(NUM_LEDS)
fl::Animartrix animartrix(xyMap, FIRST_ANIMATION)
fl::UIDropdown fxIndex("Animartrix - index", { "RGB_BLOBS5", "RGB_BLOBS4", "RGB_BLOBS3", "RGB_BLOBS2", "RGB_BLOBS", "POLAR_WAVES", "SLOW_FADE", "ZOOM2", "ZOOM", "HOT_BLOB", "SPIRALUS2", "SPIRALUS", "YVES", "SCALEDEMO1", "LAVA1", "CALEIDO3", "CALEIDO2", "CALEIDO1", "DISTANCE_EXPERIMENT", "CENTER_FIELD", "WAVES", "CHASING_SPIRALS", "ROTATING_BLOB", "RINGS", "COMPLEX_KALEIDO", "COMPLEX_KALEIDO_2", "COMPLEX_KALEIDO_3", "COMPLEX_KALEIDO_4", "COMPLEX_KALEIDO_5", "COMPLEX_KALEIDO_6", "WATER", "PARAMETRIC_WATER", "MODULE_EXPERIMENT1", "MODULE_EXPERIMENT2", "MODULE_EXPERIMENT3", "MODULE_EXPERIMENT4", "MODULE_EXPERIMENT5", "MODULE_EXPERIMENT6", "MODULE_EXPERIMENT7", "MODULE_EXPERIMENT8", "MODULE_EXPERIMENT9", "MODULE_EXPERIMENT10", "MODULE_EXPERIMENT_SM1", "MODULE_EXPERIMENT_SM2", "MODULE_EXPERIMENT_SM3", "MODULE_EXPERIMENT_SM4", "MODULE_EXPERIMENT_SM5", "MODULE_EXPERIMENT_SM6", "MODULE_EXPERIMENT_SM8", "MODULE_EXPERIMENT_SM9", "MODULE_EXPERIMENT_SM10", "FLUFFY_BLOBS" })
fl::UISlider timeSpeed("Time Speed", 1, -10, 10,.1)
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
uint8_t applyBrightnessCompression(float inputBrightnessPercent, uint8_t maxBrightness, float lowThreshold, float highThreshold)
float getAverageBrightness(fl::span< const CRGB > leds)
fl::UISlider autoBrightnessLowThreshold("Auto Brightness Low Threshold", 8, 0, 100, 1)
fl::UICheckbox autoBrightness("Auto Brightness", true)
fl::UISlider autoBrightnessHighThreshold("Auto Brightness High Threshold", 22, 0, 100, 1)
fl::UISlider autoBrightnessMax("Auto Brightness Max", 84, 0, 255, 1)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
fl::u32 millis() FL_NO_EXCEPT
Universal millisecond timer - returns milliseconds since system startup.
unsigned char uint8_t
Definition stdint.h:208

References animartrix, applyBrightnessCompression(), autoBrightness, autoBrightnessHighThreshold, autoBrightnessLowThreshold, autoBrightnessMax, brightness, FastLED, fxEngine, fxIndex, getAverageBrightness(), leds, and timeSpeed.

+ Here is the call graph for this function: