Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // FastLED
- #include <FastLED.h>
- #define NUM_LEDS 48
- CRGB leds[NUM_LEDS];
- // Using bit-bang method
- #define DAT_PIN 6
- #define CLK_PIN 12
- // patterns variables
- const uint8_t MAX_PATTERNS = 2;
- volatile uint8_t pattern = 0;
- volatile uint32_t patternLastRun = 0;
- void setup();
- void displayPattern(uint8_t pattern);
- void loop();
- void pattern_one();
- void pattern_two();
- void setup() {
- LEDS.addLeds<LPD8806, DAT_PIN, CLK_PIN, RGB>(leds, NUM_LEDS);
- }
- void displayPattern(uint8_t pattern) {
- switch (pattern) {
- case 1: pattern_one(); break;
- case 2: pattern_two(); break;
- }
- }
- void loop() {
- // check for RF data - PSEUDO CODE
- // if (RFdata) {
- // // process RF data and extract pattern number
- // pattern = RFData_Received;
- // }
- displayPattern(pattern);
- }
- /////////
- // if your RF data is simply a trigger, and does not contain data specifically specifying a pattern, use it as a counter
- //
- // void loop() {
- // // check for RF data - PSEUDO CODE
- // if (RDdata) {
- // pattern++;
- // if (pattern > MAX_PATTERNS) pattern = 1;
- // }
- // displayPattern(pattern);
- // }
- void pattern_one() {
- if (millis() - patternLastRun > 10) { // Only update when necessary, every 10ms
- leds[random8(NUM_LEDS)] = CHSV(random8(255), 255, 255);
- leds[random8(NUM_LEDS)] = CHSV(random8(255), 255, 255);
- leds[random8(NUM_LEDS)] = CHSV(random8(255), 255, 255);
- LEDS.show();
- fill_solid(&(leds[0]), NUM_LEDS, CRGB::Black);
- patternLastRun = millis();
- }
- }
- void pattern_two() {
- // create something fun!
- }
Advertisement
Add Comment
Please, Sign In to add comment