Guest User

Patterns.h

a guest
Jan 25th, 2017
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. //The following constant is the delay between each pixel flash
  2. const int interval = 25;
  3. unsigned long previousMillis = millis();
  4. #define NUM_LEDS 38
  5. CRGB leds[NUM_LEDS];
  6. uint8_t gHue = 0;
  7. int idex = 10;
  8. int TOP_INDEX = int(NUM_LEDS/2);
  9. int thishue = 0;
  10.  
  11. //---FIND INDEX OF ANTIPODAL OPPOSITE LED
  12. int antipodal_index(int i) {
  13. int iN = i + TOP_INDEX;
  14. if (i >= TOP_INDEX) {iN = ( i + TOP_INDEX ) % NUM_LEDS; }
  15. return iN;
  16. }
  17.  
  18. void sinelon() {
  19. if(buttonListener()) { return; }
  20. if(millis() - previousMillis >= interval) {
  21. previousMillis = millis();
  22. fadeToBlackBy(leds, NUM_LEDS, 20);
  23. int pos = beatsin16(13,0,NUM_LEDS);
  24. leds[pos] += CHSV(gHue, 255, 192);
  25. }
  26. }
  27.  
  28. void confetti() {
  29. if(buttonListener()) { return; }
  30. if(millis() - previousMillis >= interval) {
  31. previousMillis = millis();
  32. fadeToBlackBy(leds, NUM_LEDS, 10);
  33. int pos = random16(NUM_LEDS);
  34. leds[pos] += CHSV( gHue + random8(64), 200, 255);
  35. }
  36. }
  37.  
  38. void juggle() {
  39. if(buttonListener()) { return; }
  40. if(millis() - previousMillis >= interval) {
  41. previousMillis = millis();
  42. fadeToBlackBy(leds, NUM_LEDS, 20);
  43. byte dothue = 0;
  44. for(int i = 0; i < 8; i++) {
  45. leds[beatsin16(i+7,0,NUM_LEDS)] |= CHSV(dothue, 200, 255);
  46. dothue += 32;
  47. }
  48. }
  49. }
  50.  
  51. void bpm() {
  52. if(buttonListener()) { return; }
  53. if(millis() - previousMillis >= interval) {
  54. previousMillis = millis();
  55. uint8_t BeatsPerMinute = 62;
  56. CRGBPalette16 palette = PartyColors_p;
  57. uint8_t beat = beatsin8(BeatsPerMinute, 64, 255);
  58. for(int i = 0; i < NUM_LEDS; i++) {
  59. leds[i] = ColorFromPalette(palette, gHue+(i*2), beat-gHue+(i*10));
  60. }
  61. }
  62. }
  63.  
  64.  
  65. void rainbow() {
  66. if(buttonListener()) { return; }
  67. if(millis() - previousMillis >= interval) {
  68. previousMillis = millis();
  69. fill_rainbow(leds, NUM_LEDS, gHue, 7);
  70. // FastLED.show();
  71. }
  72. }
  73.  
  74. void addGlitter( fract8 chanceOfGlitter) {
  75. if(random8()< chanceOfGlitter){
  76. leds[random16(NUM_LEDS) ] += CRGB::White;
  77. }
  78. }
  79.  
  80. void rainbowWithGlitter(){
  81. if(buttonListener()) { return; }
  82. rainbow();
  83. addGlitter(80);
  84. }
  85.  
  86.  
  87. void random_burst() { //-m4-RANDOM INDEX/COLOR
  88. if(buttonListener()) { return; }
  89. if(millis() - previousMillis >= interval) {
  90. previousMillis = millis();
  91. idex = random(0, NUM_LEDS);
  92. gHue = random(0, 255);
  93. leds[idex] = CHSV(gHue, 255, 255);
  94. }
  95. }
  96.  
  97. void pride()
  98. {
  99. if(buttonListener()) { return; }
  100. if(millis() - previousMillis >= interval) {
  101. previousMillis = millis();
  102. static uint16_t sPseudotime = 0;
  103. static uint16_t sLastMillis = 0;
  104. static uint16_t sHue16 = 0;
  105.  
  106. uint8_t sat8 = beatsin88( 87, 220, 250);
  107. uint8_t brightdepth = beatsin88( 341, 96, 224);
  108. uint16_t brightnessthetainc16 = beatsin88( 203, (25 * 256), (40 * 256));
  109. uint8_t msmultiplier = beatsin88(147, 23, 60);
  110.  
  111. uint16_t hue16 = sHue16;//gHue * 256;
  112. uint16_t hueinc16 = beatsin88(113, 1, 3000);
  113.  
  114. uint16_t ms = millis();
  115. uint16_t deltams = ms - sLastMillis ;
  116. sLastMillis = ms;
  117. sPseudotime += deltams * msmultiplier;
  118. sHue16 += deltams * beatsin88( 400, 5,9);
  119. uint16_t brightnesstheta16 = sPseudotime;
  120.  
  121. for( uint16_t i = 0 ; i < NUM_LEDS; i++) {
  122. hue16 += hueinc16;
  123. uint8_t hue8 = hue16 / 256;
  124.  
  125. brightnesstheta16 += brightnessthetainc16;
  126. uint16_t b16 = sin16( brightnesstheta16 ) + 32768;
  127.  
  128. uint16_t bri16 = (uint32_t)((uint32_t)b16 * (uint32_t)b16) / 65536;
  129. uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536;
  130. bri8 += (255 - brightdepth);
  131.  
  132. CRGB newcolor = CHSV( hue8, sat8, bri8);
  133.  
  134. uint16_t pixelnumber = i;
  135. pixelnumber = (NUM_LEDS-1) - pixelnumber;
  136.  
  137. nblend( leds[pixelnumber], newcolor, 64);
  138. }
  139. }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment