/* blur * * By: ???? * * Modified by: Andrew Tuline * * Date: July, 2015 * * Let's try the blur function. If you look carefully at the animation, sometimes there's a smooth gradient between each LED. * Other times, the difference between them is quite significant. Thanks for the blur. * */ #include "FastLED.h" // FastLED library. #if FASTLED_VERSION < 3001000 #error "Requires FastLED 3.1 or later; check github for latest code." #endif // Fixed definitions cannot change on the fly. #define LED_DT 12 // Data pin to connect to the strip. #define LED_CK 11 // Clock pin for WS2801 or APA102. #define COLOR_ORDER BGR // It's GRB for WS2812 and BGR for APA102. #define LED_TYPE APA102 // Using APA102, WS2812, WS2801. Don't forget to modify LEDS.addLeds to suit. #define NUM_LEDS 60 // Number of LED's. // Global variables can be changed on the fly. uint8_t max_bright = 128; // Overall brightness definition. It can be changed on the fly. struct CRGB leds[NUM_LEDS]; // Initialize our LED array. void setup() { Serial.begin(57600); // Initialize serial port for debugging. delay(1000); // Soft startup to ease the flow of electrons. LEDS.addLeds(leds, NUM_LEDS); // Use this for WS2801 or APA102 // LEDS.addLeds(leds, NUM_LEDS); // Use this for WS2812 FastLED.setBrightness(max_bright); set_max_power_in_volts_and_milliamps(5, 500); // FastLED Power management set at 5V, 500mA. } // setup() void loop() { uint8_t blurAmount = dim8_raw( beatsin8(3,64, 192) ); // A sinewave at 3 Hz with values ranging from 64 to 192. blur1d( leds, NUM_LEDS, blurAmount); // Apply some blurring to whatever's already on the strip, which will eventually go black. uint8_t i = beatsin8( 9, 0, NUM_LEDS); uint8_t j = beatsin8( 7, 0, NUM_LEDS); uint8_t k = beatsin8( 5, 0, NUM_LEDS); // The color of each point shifts over time, each at a different speed. uint16_t ms = millis(); leds[(i+j)/2] = CHSV( ms / 29, 200, 255); leds[(j+k)/2] = CHSV( ms / 41, 200, 255); leds[(k+i)/2] = CHSV( ms / 73, 200, 255); leds[(k+i+j)/3] = CHSV( ms / 53, 200, 255); FastLED.show(); } // loop()