FastLED 3.9.15
Loading...
Searching...
No Matches
Overclock.ino

This sketch is fully compatible with the FastLED web compiler.

This sketch is fully compatible with the FastLED web compiler. To use it do the following:

  1. Install Fastled: pip install fastled
  2. cd into this examples page.
  3. Run the FastLED web compiler at root: fastled
  4. When the compiler is done a web page will open.
// @filter: (memory is large)
// FASTLED_OVERCLOCK must be defined BEFORE including FastLED.h so the value
// reaches led_timing.h's `#ifndef` guard. Defining it after include causes a
// -Wmacro-redefined warning on every CI build. (#2728)
#define FASTLED_OVERCLOCK 1.1 // Overclocks by 10%, I've seen 25% work fine.
#define FASTLED_OVERCLOCK_SUPPRESS_WARNING 1
#include "FastLED.h"
#include "fl/fx/fx.h"
#define LED_PIN 3
#define BRIGHTNESS 96
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
#define MATRIX_WIDTH 22
#define MATRIX_HEIGHT 22
#define GRID_SERPENTINE 1
#define NUM_LEDS (MATRIX_WIDTH * MATRIX_HEIGHT)
// This example combines two features of FastLED to produce a remarkable range
// of effects from a relatively small amount of code. This example combines
// FastLED's color palette lookup functions with FastLED's Perlin noise
// generator, and the combination is extremely powerful.
//
// You might want to look at the "ColorPalette" and "Noise" examples separately
// if this example code seems daunting.
//
//
// The basic setup here is that for each frame, we generate a new fl::array of
// 'noise' data, and then map it onto the LED matrix through a color palette.
//
// Periodically, the color palette is changed, and new noise-generation
// parameters are chosen at the same time. In this example, specific
// noise-generation values have been selected to match the given color palettes;
// some are faster, or slower, or larger, or smaller than others, but there's no
// reason these parameters can't be freely mixed-and-matched.
//
// In addition, this example includes some fast automatic 'data smoothing' at
// lower noise speeds to help produce smoother animations in those cases.
//
// The FastLED built-in color palettes (Forest, Clouds, Lava, Ocean, Party) are
// used, as well as some 'hand-defined' ones, and some proceedurally generated
// palettes.
// Scale determines how far apart the pixels in our noise matrix are. Try
// changing these values around to see how it affects the motion of the display.
// The higher the value of scale, the more "zoomed out" the noise iwll be. A
// value of 1 will be so zoomed in, you'll mostly see solid colors.
#define SCALE 20
// We're using the x/y dimensions to map to the x/y pixels on the matrix. We'll
// use the z-axis for "time". speed determines how fast time moves forward. Try
// 1 for a very slow moving effect, or 60 for something that ends up looking
// like water.
#define SPEED 30
void setup() {
delay(1000); // sanity delay
.setCorrection(TypicalLEDStrip).setScreenMap(xyMap);
FastLED.setBrightness(96);
noisePalette.setSpeed(SPEED);
noisePalette.setScale(SCALE);
}
void loop() {
EVERY_N_MILLISECONDS(5000) { noisePalette.changeToRandomPalette(); }
FastLED.show();
}
void setup()
void loop()
#define COLOR_ORDER
#define MATRIX_HEIGHT
fl::XYMap xyMap
#define NUM_LEDS
fl::CRGB leds[NUM_LEDS]
#define LED_PIN
#define MATRIX_WIDTH
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
#define GRID_SERPENTINE
#define SCALE
Definition Overclock.ino:68
#define SPEED
Definition Overclock.ino:74
#define LED_TYPE
::fl::DrawContext DrawContext
Definition fx.h:21
fl::CRGBPalette16 noisePalette
Definition curr.h:243
@ TypicalLEDStrip
Typical values for SMD5050 LEDs.
Definition color.h:15
#define EVERY_N_MILLISECONDS(N)
Alias for EVERY_N_MILLIS.
Definition lib8tion.h:1045
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
Demonstrates how to mix noise generation with color palettes on a 2D LED matrix.
Representation of an 8-bit RGB pixel (Red, Green, Blue)
Definition crgb.h:38