Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FastLED/FastLED.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kriegsman <kriegsman@tr.org>2015-05-14 03:09:08 +0300
committerMark Kriegsman <kriegsman@tr.org>2015-05-14 03:09:08 +0300
commit7e058dcaea741d4705bcfd12bb97df5092282597 (patch)
tree67bd4dfcddd13c070b6feacec29470049ff9102e /examples
parent64a2ea7fea87fa911e52dd88596896269fdd9346 (diff)
Change BLEND to LINEARBLEND for ColorFromPalette
Diffstat (limited to 'examples')
-rw-r--r--examples/ColorPalette/ColorPalette.ino165
1 files changed, 82 insertions, 83 deletions
diff --git a/examples/ColorPalette/ColorPalette.ino b/examples/ColorPalette/ColorPalette.ino
index 93318998..0fdfb594 100644
--- a/examples/ColorPalette/ColorPalette.ino
+++ b/examples/ColorPalette/ColorPalette.ino
@@ -12,18 +12,18 @@ CRGB leds[NUM_LEDS];
// This example shows several ways to set up and use 'palettes' of colors
// with FastLED.
//
-// These compact palettes provide an easy way to re-colorize your
+// These compact palettes provide an easy way to re-colorize your
// animation on the fly, quickly, easily, and with low overhead.
//
// USING palettes is MUCH simpler in practice than in theory, so first just
-// run this sketch, and watch the pretty lights as you then read through
+// run this sketch, and watch the pretty lights as you then read through
// the code. Although this sketch has eight (or more) different color schemes,
// the entire sketch compiles down to about 6.5K on AVR.
//
// FastLED provides a few pre-configured color palettes, and makes it
// extremely easy to make up your own color schemes with palettes.
//
-// Some notes on the more abstract 'theory and practice' of
+// Some notes on the more abstract 'theory and practice' of
// FastLED compact palettes are at the bottom of this file.
@@ -36,36 +36,36 @@ extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;
void setup() {
- delay( 3000 ); // power-up safety delay
- FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
- FastLED.setBrightness( BRIGHTNESS );
-
- currentPalette = RainbowColors_p;
- currentBlending = BLEND;
+ delay( 3000 ); // power-up safety delay
+ FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
+ FastLED.setBrightness( BRIGHTNESS );
+
+ currentPalette = RainbowColors_p;
+ currentBlending = LINEARBLEND;
}
void loop()
{
- ChangePalettePeriodically();
-
- static uint8_t startIndex = 0;
- startIndex = startIndex + 1; /* motion speed */
-
- FillLEDsFromPaletteColors( startIndex);
-
- FastLED.show();
- FastLED.delay(1000 / UPDATES_PER_SECOND);
+ ChangePalettePeriodically();
+
+ static uint8_t startIndex = 0;
+ startIndex = startIndex + 1; /* motion speed */
+
+ FillLEDsFromPaletteColors( startIndex);
+
+ FastLED.show();
+ FastLED.delay(1000 / UPDATES_PER_SECOND);
}
void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
- uint8_t brightness = 255;
-
- for( int i = 0; i < NUM_LEDS; i++) {
- leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
- colorIndex += 3;
- }
+ uint8_t brightness = 255;
+
+ for( int i = 0; i < NUM_LEDS; i++) {
+ leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
+ colorIndex += 3;
+ }
}
@@ -79,31 +79,31 @@ void FillLEDsFromPaletteColors( uint8_t colorIndex)
void ChangePalettePeriodically()
{
- uint8_t secondHand = (millis() / 1000) % 60;
- static uint8_t lastSecond = 99;
-
- if( lastSecond != secondHand) {
- lastSecond = secondHand;
- if( secondHand == 0) { currentPalette = RainbowColors_p; currentBlending = BLEND; }
- if( secondHand == 10) { currentPalette = RainbowStripeColors_p; currentBlending = NOBLEND; }
- if( secondHand == 15) { currentPalette = RainbowStripeColors_p; currentBlending = BLEND; }
- if( secondHand == 20) { SetupPurpleAndGreenPalette(); currentBlending = BLEND; }
- if( secondHand == 25) { SetupTotallyRandomPalette(); currentBlending = BLEND; }
- if( secondHand == 30) { SetupBlackAndWhiteStripedPalette(); currentBlending = NOBLEND; }
- if( secondHand == 35) { SetupBlackAndWhiteStripedPalette(); currentBlending = BLEND; }
- if( secondHand == 40) { currentPalette = CloudColors_p; currentBlending = BLEND; }
- if( secondHand == 45) { currentPalette = PartyColors_p; currentBlending = BLEND; }
- if( secondHand == 50) { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND; }
- if( secondHand == 55) { currentPalette = myRedWhiteBluePalette_p; currentBlending = BLEND; }
- }
+ uint8_t secondHand = (millis() / 1000) % 60;
+ static uint8_t lastSecond = 99;
+
+ if( lastSecond != secondHand) {
+ lastSecond = secondHand;
+ if( secondHand == 0) { currentPalette = RainbowColors_p; currentBlending = LINEARBLEND; }
+ if( secondHand == 10) { currentPalette = RainbowStripeColors_p; currentBlending = NOBLEND; }
+ if( secondHand == 15) { currentPalette = RainbowStripeColors_p; currentBlending = LINEARBLEND; }
+ if( secondHand == 20) { SetupPurpleAndGreenPalette(); currentBlending = LINEARBLEND; }
+ if( secondHand == 25) { SetupTotallyRandomPalette(); currentBlending = LINEARBLEND; }
+ if( secondHand == 30) { SetupBlackAndWhiteStripedPalette(); currentBlending = NOBLEND; }
+ if( secondHand == 35) { SetupBlackAndWhiteStripedPalette(); currentBlending = LINEARBLEND; }
+ if( secondHand == 40) { currentPalette = CloudColors_p; currentBlending = LINEARBLEND; }
+ if( secondHand == 45) { currentPalette = PartyColors_p; currentBlending = LINEARBLEND; }
+ if( secondHand == 50) { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND; }
+ if( secondHand == 55) { currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND; }
+ }
}
// This function fills the palette with totally random colors.
void SetupTotallyRandomPalette()
{
- for( int i = 0; i < 16; i++) {
- currentPalette[i] = CHSV( random8(), 255, random8());
- }
+ for( int i = 0; i < 16; i++) {
+ currentPalette[i] = CHSV( random8(), 255, random8());
+ }
}
// This function sets up a palette of black and white stripes,
@@ -112,55 +112,55 @@ void SetupTotallyRandomPalette()
// to set them up.
void SetupBlackAndWhiteStripedPalette()
{
- // 'black out' all 16 palette entries...
- fill_solid( currentPalette, 16, CRGB::Black);
- // and set every fourth one to white.
- currentPalette[0] = CRGB::White;
- currentPalette[4] = CRGB::White;
- currentPalette[8] = CRGB::White;
- currentPalette[12] = CRGB::White;
-
+ // 'black out' all 16 palette entries...
+ fill_solid( currentPalette, 16, CRGB::Black);
+ // and set every fourth one to white.
+ currentPalette[0] = CRGB::White;
+ currentPalette[4] = CRGB::White;
+ currentPalette[8] = CRGB::White;
+ currentPalette[12] = CRGB::White;
+
}
// This function sets up a palette of purple and green stripes.
void SetupPurpleAndGreenPalette()
{
- CRGB purple = CHSV( HUE_PURPLE, 255, 255);
- CRGB green = CHSV( HUE_GREEN, 255, 255);
- CRGB black = CRGB::Black;
-
- currentPalette = CRGBPalette16(
- green, green, black, black,
- purple, purple, black, black,
- green, green, black, black,
- purple, purple, black, black );
+ CRGB purple = CHSV( HUE_PURPLE, 255, 255);
+ CRGB green = CHSV( HUE_GREEN, 255, 255);
+ CRGB black = CRGB::Black;
+
+ currentPalette = CRGBPalette16(
+ green, green, black, black,
+ purple, purple, black, black,
+ green, green, black, black,
+ purple, purple, black, black );
}
// This example shows how to set up a static color palette
-// which is stored in PROGMEM (flash), which is almost always more
+// which is stored in PROGMEM (flash), which is almost always more
// plentiful than RAM. A static PROGMEM palette like this
// takes up 64 bytes of flash.
const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
{
- CRGB::Red,
- CRGB::Gray, // 'white' is too bright compared to red and blue
- CRGB::Blue,
- CRGB::Black,
-
- CRGB::Red,
- CRGB::Gray,
- CRGB::Blue,
- CRGB::Black,
-
- CRGB::Red,
- CRGB::Red,
- CRGB::Gray,
- CRGB::Gray,
- CRGB::Blue,
- CRGB::Blue,
- CRGB::Black,
- CRGB::Black
+ CRGB::Red,
+ CRGB::Gray, // 'white' is too bright compared to red and blue
+ CRGB::Blue,
+ CRGB::Black,
+
+ CRGB::Red,
+ CRGB::Gray,
+ CRGB::Blue,
+ CRGB::Black,
+
+ CRGB::Red,
+ CRGB::Red,
+ CRGB::Gray,
+ CRGB::Gray,
+ CRGB::Blue,
+ CRGB::Blue,
+ CRGB::Black,
+ CRGB::Black
};
@@ -171,7 +171,7 @@ const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
// has 256 entries, each containing a specific 24-bit RGB color. You can then
// index into the color palette using a simple 8-bit (one byte) value.
// A 256-entry color palette takes up 768 bytes of RAM, which on Arduino
-// is quite possibly "too many" bytes.
+// is quite possibly "too many" bytes.
//
// FastLED does offer traditional 256-element palettes, for setups that
// can afford the 768-byte cost in RAM.
@@ -179,11 +179,10 @@ const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
// However, FastLED also offers a compact alternative. FastLED offers
// palettes that store 16 distinct entries, but can be accessed AS IF
// they actually have 256 entries; this is accomplished by interpolating
-// between the 16 explicit entries to create fifteen intermediate palette
+// between the 16 explicit entries to create fifteen intermediate palette
// entries between each pair.
//
// So for example, if you set the first two explicit entries of a compact
// palette to Green (0,255,0) and Blue (0,0,255), and then retrieved
// the first sixteen entries from the virtual palette (of 256), you'd get
// Green, followed by a smooth gradient from green-to-blue, and then Blue.
-