|
|
@@ -0,0 +1,58 @@ |
|
|
|
// 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); |
|
|
|
} |
|
|
|
} |