Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FastLED.h>
- #define LED_PIN 6
- // Information about the LED strip itself
- #define NUM_LEDS 30
- #define CHIPSET WS2812
- #define COLOR_ORDER GRB
- CRGB leds[NUM_LEDS];
- #define BRIGHTNESS 19
- // FastLED v2.1 provides two color-management controls:
- // (1) color correction settings for each LED strip, and
- // (2) master control of the overall output 'color temperature'
- //
- // THIS EXAMPLE demonstrates the second, "color temperature" control.
- // It shows a simple rainbow animation first with one temperature profile,
- // and a few seconds later, with a different temperature profile.
- //
- // The first pixel of the strip will show the color temperature.
- //
- // HELPFUL HINTS for "seeing" the effect in this demo:
- // * Don't look directly at the LED pixels. Shine the LEDs aganst
- // a white wall, table, or piece of paper, and look at the reflected light.
- //
- // * If you watch it for a bit, and then walk away, and then come back
- // to it, you'll probably be able to "see" whether it's currently using
- // the 'redder' or the 'bluer' temperature profile, even not counting
- // the lowest 'indicator' pixel.
- //
- //
- // FastLED provides these pre-conigured incandescent color profiles:
- // Candle, Tungsten40W, Tungsten100W, Halogen, CarbonArc,
- // HighNoonSun, DirectSunlight, OvercastSky, ClearBlueSky,
- // FastLED provides these pre-configured gaseous-light color profiles:
- // WarmFluorescent, StandardFluorescent, CoolWhiteFluorescent,
- // FullSpectrumFluorescent, GrowLightFluorescent, BlackLightFluorescent,
- // MercuryVapor, SodiumVapor, MetalHalide, HighPressureSodium,
- // FastLED also provides an "Uncorrected temperature" profile
- // UncorrectedTemperature;
- #define TEMPERATURE_1 Candle
- #define TEMPERATURE_2 Halogen
- // How many seconds to show each temperature before switching
- #define DISPLAYTIME 40
- // How many seconds to show black between switches
- #define BLACKTIME 3
- void loop()
- {
- // draw a generic, no-name rainbow
- static uint8_t starthue = 0;
- fill_rainbow( leds + 1, NUM_LEDS - 1, --starthue, 20);
- // Choose which 'color temperature' profile to enable.
- uint8_t secs = (millis() / 1000) % (DISPLAYTIME * 2);
- if( secs < DISPLAYTIME) {
- FastLED.setTemperature( TEMPERATURE_1 ); // first temperature
- leds[0] = TEMPERATURE_1; // show indicator pixel
- } else {
- FastLED.setTemperature( TEMPERATURE_2 ); // second temperature
- leds[0] = TEMPERATURE_2; // show indicator pixel
- }
- // Black out the LEDs for a few secnds between color changes
- // to let the eyes and brains adjust
- //if( (secs % DISPLAYTIME) < BLACKTIME) {
- // memset8( leds, 0, NUM_LEDS * sizeof(CRGB));
- //}
- FastLED.show();
- FastLED.delay(8);
- }
- void setup() {
- delay( 3000 ); // power-up safety delay
- // It's important to set the color correction for your LED strip here,
- // so that colors can be more accurately rendered through the 'temperature' profiles
- FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalSMD5050 );
- FastLED.setBrightness( BRIGHTNESS );
- }
Advertisement
Add Comment
Please, Sign In to add comment