69 lines
2.6 KiB
Arduino
69 lines
2.6 KiB
Arduino
|
/* 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<LED_TYPE, LED_DT, LED_CK, COLOR_ORDER>(leds, NUM_LEDS); // Use this for WS2801 or APA102
|
||
|
// LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(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()
|
||
|
|