Guest User

What i have so far

a guest
Nov 25th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. #include "FastLED.h"
  2.  
  3. #define DATA_PIN 0
  4. #define BUTTON_LEAD 4
  5. #define NUMBER_OF_MODES 4
  6. #define LED_TYPE WS2812B
  7. #define COLOR_ORDER GRB
  8. #define NUM_LEDS 175
  9. CRGB leds[NUM_LEDS];
  10.  
  11.  
  12. #define BRIGHTNESS 255
  13. #define FRAMES_PER_SECOND 120
  14.  
  15. //The following constant is the delay between each pixel flash
  16. const int interval = 25;
  17. unsigned long previousMillis = millis();
  18. int mode = 1; //Default mode is one.
  19.  
  20. bool buttonState = LOW;
  21. bool lastButtonState = LOW;
  22.  
  23.  
  24. void setup(){
  25. pinMode(BUTTON_LEAD, INPUT_PULLUP);
  26. FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  27. FastLED.setBrightness(BRIGHTNESS);
  28. }
  29.  
  30. uint8_t gHue = 0;
  31.  
  32. void loop() {
  33.  
  34. switch (mode) {
  35. case 1:
  36. sinelon();
  37. break;
  38.  
  39. case 2:
  40. confetti();
  41. break;
  42.  
  43. case 3:
  44. juggle();
  45. break;
  46.  
  47. case 4:
  48. bpm();
  49. break;
  50.  
  51. default:
  52. mode = 1;
  53. break;
  54. }
  55. FastLED.show();
  56. EVERY_N_MILLISECONDS( 20 ) { gHue++; }
  57. }
  58.  
  59. /* monitor button press */
  60. bool buttonListener() {
  61. bool modeChanged = false;
  62.  
  63. buttonState = digitalRead(BUTTON_LEAD);
  64.  
  65. if (buttonState != lastButtonState) {
  66. if (buttonState == LOW) {
  67. mode++;
  68. modeChanged = true;
  69. delay(250); // Debounce delay. I checked the best parameter and 250 was it.
  70. }
  71. }
  72. lastButtonState = buttonState;
  73.  
  74. return modeChanged;
  75. }
  76.  
  77. void sinelon() {
  78. if(buttonListener()) { return; }
  79. if(millis() - previousMillis >= interval) {
  80. previousMillis = millis();
  81. fadeToBlackBy(leds, NUM_LEDS, 20);
  82. int pos = beatsin16(13,0,NUM_LEDS);
  83. leds[pos] += CHSV(gHue, 255, 192);
  84. }
  85. }
  86.  
  87. void confetti() {
  88. if(buttonListener()) { return; }
  89. if(millis() - previousMillis >= interval) {
  90. previousMillis = millis();
  91. fadeToBlackBy(leds, NUM_LEDS, 10);
  92. int pos = random16(NUM_LEDS);
  93. leds[pos] += CHSV( gHue + random8(64), 200, 255);
  94. }
  95. }
  96.  
  97. void juggle() {
  98. if(buttonListener()) { return; }
  99. if(millis() - previousMillis >= interval) {
  100. previousMillis = millis();
  101. fadeToBlackBy(leds, NUM_LEDS, 20);
  102. byte dothue = 0;
  103. for(int i = 0; i < 8; i++) {
  104. leds[beatsin16(i+7,0,NUM_LEDS)] |= CHSV(dothue, 200, 255);
  105. dothue += 32;
  106. }
  107. }
  108. }
  109.  
  110. void bpm() {
  111. if(buttonListener()) { return; }
  112. if(millis() - previousMillis >= interval) {
  113. previousMillis = millis();
  114. uint8_t BeatsPerMinute = 62;
  115. CRGBPalette16 palette = PartyColors_p;
  116. uint8_t beat = beatsin8(BeatsPerMinute, 64, 255);
  117. for(int i = 0; i < NUM_LEDS; i++) {
  118. leds[i] = ColorFromPalette(palette, gHue+(i*2), beat-gHue+(i*10));
  119. }
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment