| // FastLED Cylon Example, using Non-Blocking WS2812Serial | |||||
| #include <WS2812Serial.h> | |||||
| #define USE_WS2812SERIAL | |||||
| #include <FastLED.h> | |||||
| // How many leds in your strip? | |||||
| #define NUM_LEDS 64 | |||||
| // Usable pins: | |||||
| // Teensy LC: 1, 4, 5, 24 | |||||
| // Teensy 3.2: 1, 5, 8, 10, 20, 31 | |||||
| // Teensy 3.5: 1, 5, 8, 10, 20, 26, 32, 33, 48 | |||||
| // Teensy 3.6: 1, 5, 8, 10, 20, 26, 32, 33 | |||||
| #define DATA_PIN 1 | |||||
| // Define the array of leds | |||||
| CRGB leds[NUM_LEDS]; | |||||
| void setup() { | |||||
| Serial.begin(57600); | |||||
| Serial.println("resetting"); | |||||
| LEDS.addLeds<WS2812SERIAL,DATA_PIN,RGB>(leds,NUM_LEDS); | |||||
| LEDS.setBrightness(84); | |||||
| } | |||||
| void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } } | |||||
| void loop() { | |||||
| static uint8_t hue = 0; | |||||
| Serial.print("x"); | |||||
| // First slide the led in one direction | |||||
| for(int i = 0; i < NUM_LEDS; i++) { | |||||
| // Set the i'th led to red | |||||
| leds[i] = CHSV(hue++, 255, 255); | |||||
| // Show the leds | |||||
| FastLED.show(); | |||||
| // now that we've shown the leds, reset the i'th led to black | |||||
| // leds[i] = CRGB::Black; | |||||
| fadeall(); | |||||
| // Wait a little bit before we loop around and do it again | |||||
| delay(20); | |||||
| } | |||||
| Serial.print("x"); | |||||
| // Now go in the other direction. | |||||
| for(int i = (NUM_LEDS)-1; i >= 0; i--) { | |||||
| // Set the i'th led to red | |||||
| leds[i] = CHSV(hue++, 255, 255); | |||||
| // Show the leds | |||||
| FastLED.show(); | |||||
| // now that we've shown the leds, reset the i'th led to black | |||||
| // leds[i] = CRGB::Black; | |||||
| fadeall(); | |||||
| // Wait a little bit before we loop around and do it again | |||||
| delay(20); | |||||
| } | |||||
| } |