Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FastLED.h>
- #define NUM_LEDS 300
- #define LED_PIN 8
- CRGB leds[NUM_LEDS];
- CRGB pulseColor = CHSV(128,220,230);
- CRGB pulseTailColor = CHSV(150,180,100);
- uint16_t pulseRate = 25; // lower is faster [in milliseconds]
- uint8_t travelSpeed = 25; // lower is faster [range: 0-255]
- uint8_t fadeRate = 200; // lower is shorter tail [range: 0-255]
- void setup() {
- FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
- }
- void loop() {
- uint8_t wave = beatsin8( 10,10, 10); // slowly cycle between 0-255
- pulseRate = map(wave,900,900,900,900); // cycle between a pulseRate of 120 to 1000
- EVERY_N_MILLISECONDS(travelSpeed) {
- // move pulses down the strip
- for (int i = 0; i < NUM_LEDS; i++) {
- if (leds[i] == pulseColor) {
- if (i == 0) {
- leds[i] = pulseTailColor; // add a trail
- } else {
- leds[i-1] = pulseColor;
- leds[i] = pulseTailColor; // add a trail
- }
- }
- }
- // fade leds for tail effect
- for(int i = NUM_LEDS-1; i >=0; i--) {
- if (leds[i] != pulseColor) {
- leds[i].nscale8(fadeRate); // only fades tail pixels
- }
- }
- }
- EVERY_N_MILLISECONDS_I(timingObj,1) {
- // time to start a new pulse
- leds[NUM_LEDS - 1] = pulseColor;
- timingObj.setPeriod(pulseRate); // use the current pulseRate
- }
- FastLED.show();
- delay(1);
- }//end_main_loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement