// FastLED Cylon Example, using Non-Blocking WS2812Serial #include #define USE_WS2812SERIAL #include // 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, 31 (overclock to 120 MHz for pin 8) // Teensy 3.5: 1, 5, 8, 10, 26, 32, 33, 48 // Teensy 3.6: 1, 5, 8, 10, 26, 32, 33 // Teensy 4.0: 1, 8, 14, 17, 20, 24, 29, 39 // Teensy 4.1: 1, 8, 14, 17, 20, 24, 29, 35, 47, 53 #define DATA_PIN 1 // Define the array of leds CRGB leds[NUM_LEDS]; void setup() { Serial.begin(57600); Serial.println("resetting"); LEDS.addLeds(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); } }