kirash4

Pattern Selections

Apr 14th, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. // FastLED
  2. #include <FastLED.h>
  3. #define NUM_LEDS 48
  4. CRGB leds[NUM_LEDS];
  5.  
  6. // Using bit-bang method
  7. #define DAT_PIN 6
  8. #define CLK_PIN 12
  9.  
  10. // patterns variables
  11. const    uint8_t  MAX_PATTERNS   = 2;
  12. volatile uint8_t  pattern        = 0;
  13. volatile uint32_t patternLastRun = 0;
  14.  
  15. void setup();
  16. void displayPattern(uint8_t pattern);
  17. void loop();
  18. void pattern_one();
  19. void pattern_two();
  20.  
  21. void setup() {
  22.   LEDS.addLeds<LPD8806, DAT_PIN, CLK_PIN, RGB>(leds, NUM_LEDS);
  23. }
  24.  
  25. void displayPattern(uint8_t pattern) {
  26.   switch (pattern) {
  27.     case  1: pattern_one(); break;
  28.     case  2: pattern_two(); break;
  29.   }
  30. }
  31.  
  32. void loop() {
  33.   // check for RF data - PSEUDO CODE
  34.   // if (RFdata) {
  35.   //   // process RF data and extract pattern number
  36.   //   pattern = RFData_Received;
  37.   // }
  38.   displayPattern(pattern);
  39. }
  40.  
  41. /////////
  42. // if your RF data is simply a trigger, and does not contain data specifically specifying a pattern, use it as a counter
  43. //
  44. // void loop() {
  45. //   // check for RF data - PSEUDO CODE
  46. //   if (RDdata) {
  47. //     pattern++;
  48. //     if (pattern > MAX_PATTERNS) pattern = 1;
  49. //   }
  50. //   displayPattern(pattern);
  51. // }
  52.  
  53. void pattern_one() {
  54.   if (millis() - patternLastRun > 10) { // Only update when necessary, every 10ms
  55.     leds[random8(NUM_LEDS)] = CHSV(random8(255), 255, 255);
  56.     leds[random8(NUM_LEDS)] = CHSV(random8(255), 255, 255);
  57.     leds[random8(NUM_LEDS)] = CHSV(random8(255), 255, 255);
  58.     LEDS.show();
  59.     fill_solid(&(leds[0]), NUM_LEDS, CRGB::Black);
  60.     patternLastRun = millis();
  61.   }
  62. }
  63.  
  64. void pattern_two() {
  65.   // create something fun!
  66. }
Advertisement
Add Comment
Please, Sign In to add comment