Advertisement
Push28

ws2811b animation v2

Jan 14th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.46 KB | None | 0 0
  1. #include "FastLED.h"
  2. // Number of RGB LEDs in the strand
  3. #define NUM_LEDS 30
  4.  
  5. // Define the array of leds
  6. CRGB leds[NUM_LEDS];
  7. int b;
  8. // Arduino pin used for Data
  9. #define PIN 6
  10.  
  11. void setup()
  12. {
  13.   FastLED.addLeds<NEOPIXEL, PIN>(leds, NUM_LEDS);
  14.  
  15. }
  16.  
  17. void loop() {
  18.   // one at a time
  19.  
  20.   for (int i = 0 ; i < NUM_LEDS; i++ ) {
  21.     b = i ;
  22.     b-- ;
  23.     leds[i].r = 255;
  24.     leds[b].r = 0;
  25.     FastLED.show();
  26.     delay(75);
  27.     leds[NUM_LEDS].r = 0;
  28.   }
  29.   for (int i = NUM_LEDS ; i >= 0; i-- ) {
  30.     b = i ;
  31.     b++ ;
  32.     leds[i].r = 255;
  33.     leds[b].r = 0;
  34.     FastLED.show();
  35.     delay(75);
  36.     leds[0].r = 0;
  37.   }
  38.  
  39.   for (int i = 0 ; i < NUM_LEDS; i++ ) {
  40.     b = i ;
  41.     b-- ;
  42.     leds[i].g = 255;
  43.     leds[b].g = 0;
  44.     FastLED.show();
  45.     delay(75);
  46.     leds[NUM_LEDS].g = 0;
  47.   }
  48.   for (int i = NUM_LEDS ; i >= 0; i-- ) {
  49.     b = i ;
  50.     b++ ;
  51.     leds[i].g = 255;
  52.     leds[b].g = 0;
  53.     FastLED.show();
  54.     delay(75);
  55.     leds[0].g = 0;
  56.   }
  57.  
  58.  
  59.   for (int i = 0 ; i < NUM_LEDS; i++ ) {
  60.     b = i ;
  61.     b-- ;
  62.     leds[i].b = 255;
  63.     leds[b].b = 0;
  64.     FastLED.show();
  65.     delay(75);
  66.     leds[NUM_LEDS].b = 0;
  67.   }
  68.   for (int i = NUM_LEDS ; i >= 0; i-- ) {
  69.     b = i ;
  70.     b++ ;
  71.     leds[i].b = 255;
  72.     leds[b].b = 0;
  73.     FastLED.show();
  74.     delay(75);
  75.     leds[0].b = 0;
  76.   }
  77.   for (int i = 0 ; i < NUM_LEDS; i++ ) {
  78.     b = i ;
  79.     b-- ;
  80.     leds[i].r = 255;
  81.     leds[b].r = 0;
  82.     leds[i].g = 255;
  83.     leds[b].g = 0;
  84.     leds[i].b = 255;
  85.     leds[b].b = 0;
  86.     FastLED.show();
  87.     delay(75);
  88.     leds[NUM_LEDS].r = 0;
  89.     leds[NUM_LEDS].g = 0;
  90.     leds[NUM_LEDS].b = 0;
  91.   }
  92.   for (int i = NUM_LEDS ; i >= 0; i-- ) {
  93.     b = i ;
  94.     b++ ;
  95.     leds[i].r = 255;
  96.     leds[b].r = 0;
  97.     leds[i].g = 255;
  98.     leds[b].g = 0;
  99.     leds[i].b = 255;
  100.     leds[b].b = 0;
  101.     FastLED.show();
  102.     delay(75);
  103.     leds[0].r = 0;
  104.     leds[0].g = 0;
  105.     leds[0].b = 0;
  106.   }
  107.  
  108.   // growing/receeding bars
  109.   for (int j = 0; j < 4; j++) {
  110.     memset(leds, 0, NUM_LEDS * 3);
  111.     for (int i = 0 ; i < NUM_LEDS; i++ ) {
  112.       switch (j) {
  113.         case 0: leds[i].r = 255; break;
  114.         case 1: leds[i].g = 255; break;
  115.         case 2: leds[i].b = 255; break;
  116.         case 3: leds[i].r = 255; leds[i].g = 255; leds[i].b = 255; break;
  117.       }
  118.       FastLED.show();
  119.       delay(50);
  120.     }
  121.     for (int i = NUM_LEDS - 1 ; i >= 0; i-- ) {
  122.       switch (j) {
  123.         case 0: leds[i].r = 0; break;
  124.         case 1: leds[i].g = 0; break;
  125.         case 2: leds[i].b = 0; break;
  126.         case 3: leds[i].r = 0; leds[i].g = 0; leds[i].b = 0; break;
  127.       }
  128.       FastSPI_LED.show();
  129.       delay(50);
  130.     }
  131.   }
  132.  
  133.   // Fade in/fade out
  134.  
  135.   for (int j = 0; j < 4; j++ ) {
  136.     memset(leds, 0, NUM_LEDS * 3);
  137.     for (int k = 0; k < 256; k++) {
  138.       for (int i = 0; i < NUM_LEDS; i++ ) {
  139.         switch (j) {
  140.           case 0: leds[i].r = k; break;
  141.           case 1: leds[i].g = k; break;
  142.           case 2: leds[i].b = k; break;
  143.           case 3: leds[i].r = k; leds[i].g = k; leds[i].b = k; break;
  144.         }
  145.       }
  146.       FastLED.show();
  147.       delay(8);
  148.     }
  149.     for (int k = 255; k >= 0; k--) {
  150.       for (int i = 0; i < NUM_LEDS; i++ ) {
  151.         switch (j) {
  152.           case 0: leds[i].r = k; break;
  153.           case 1: leds[i].g = k; break;
  154.           case 2: leds[i].b = k; break;
  155.           case 3: leds[i].r = k; leds[i].g = k; leds[i].b = k; break;
  156.         }
  157.       }
  158.       FastLED.show();
  159.       delay(8);
  160.     }
  161.   }
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement