FastLED 3.9.7
Loading...
Searching...
No Matches
FxEngine.ino
Go to the documentation of this file.
1
6
7#include <FastLED.h>
8using namespace fl;
9
10#if defined(__AVR__)
11// __AVR__: Not enough memory enough for the FxEngine, so skipping this example
12void setup() {}
13void loop() {}
14
15#else
16
17#include "fx/2d/noisepalette.h"
18#include "fx/2d/animartrix.hpp"
19#include "fx/fx_engine.h"
20#include "fl/ui.h"
21
22#define LED_PIN 2
23#define BRIGHTNESS 96
24#define LED_TYPE WS2811
25#define COLOR_ORDER GRB
26
27#define MATRIX_WIDTH 22
28#define MATRIX_HEIGHT 22
29
30#define NUM_LEDS (MATRIX_WIDTH * MATRIX_HEIGHT)
31
32#ifdef __EMSCRIPTEN__
33#define IS_SERPINTINE false
34#else
35#define IS_SERPINTINE true
36#endif
37
38
39Slider SCALE("SCALE", 20, 20, 100);
40Slider SPEED("SPEED", 30, 20, 100);
41
42CRGB leds[NUM_LEDS];
43XYMap xyMap(MATRIX_WIDTH, MATRIX_HEIGHT, IS_SERPINTINE); // No serpentine
44NoisePalette noisePalette1(xyMap);
45NoisePalette noisePalette2(xyMap);
46FxEngine fxEngine(NUM_LEDS);
47Checkbox switchFx("Switch Fx", true);
48
49void setup() {
50 delay(1000); // sanity delay
51 FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS)
52 .setCorrection(TypicalLEDStrip)
53 .setScreenMap(MATRIX_WIDTH, MATRIX_HEIGHT);
55 noisePalette1.setPalettePreset(2);
56 noisePalette2.setPalettePreset(4);
57 fxEngine.addFx(noisePalette1);
58 fxEngine.addFx(noisePalette2);
59}
60
61void loop() {
62 noisePalette1.setSpeed(SPEED);
63 noisePalette1.setScale(SCALE);
64 noisePalette2.setSpeed(SPEED);
65 noisePalette2.setScale(int(SCALE) * 3 / 2); // Make the different.
67 if (switchFx) {
68 fxEngine.nextFx(500);
69 }
70 }
71 fxEngine.draw(millis(), leds);
72 FastLED.show();
73}
74
75#endif // __AVR__
CFastLED FastLED
Global LED strip management instance.
Definition FastLED.cpp:45
central include file for FastLED, defines the CFastLED class/object
void setBrightness(uint8_t scale)
Set the global brightness scaling.
Definition FastLED.h:723
void show(uint8_t scale)
Update all our controllers with the current led colors, using the passed in brightness.
Definition FastLED.cpp:94
static CLEDController & addLeds(CLEDController *pLed, struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
Add a CLEDController instance to the world.
Definition FastLED.cpp:79
Manages and renders multiple visual effects (Fx) for LED strips.
Definition fx_engine.h:38
int addFx(FxPtr effect)
Adds a new effect to the engine.
Definition fx_engine.cpp:16
bool nextFx(uint16_t transition_ms=500)
Transitions to the next effect in the sequence.
Definition fx_engine.cpp:35
bool draw(uint32_t now, CRGB *outputBuffer)
Renders the current effect or transition to the output buffer.
Definition fx_engine.cpp:84
@ TypicalLEDStrip
Typical values for SMD5050 LEDs.
Definition color.h:19
#define EVERY_N_SECONDS(N)
Checks whether to execute a block of code every N seconds.
Definition lib8tion.h:1283
Implements a simple red square effect for 2D LED grids.
Definition crgb.h:16
Demonstrates how to mix noise generation with color palettes on a 2D LED matrix.
Representation of an RGB pixel (Red, Green, Blue)
Definition crgb.h:54