| #include <WS2812Serial.h> | |||||
| const int numled = 64; | |||||
| const int pin = 1; | |||||
| // Usable pins: | |||||
| // 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 | |||||
| byte drawingMemory[numled*3]; | |||||
| DMAMEM byte displayMemory[numled*8]; | |||||
| WS2812Serial leds(numled, displayMemory, drawingMemory, pin, WS2812_GRB); | |||||
| #define RED 0xFF0000 | |||||
| #define GREEN 0x00FF00 | |||||
| #define BLUE 0x0000FF | |||||
| #define YELLOW 0xFFFF00 | |||||
| #define PINK 0xFF1088 | |||||
| #define ORANGE 0xE05800 | |||||
| #define WHITE 0xFFFFFF | |||||
| // Less intense... | |||||
| /* | |||||
| #define RED 0x160000 | |||||
| #define GREEN 0x001600 | |||||
| #define BLUE 0x000016 | |||||
| #define YELLOW 0x101400 | |||||
| #define PINK 0x120009 | |||||
| #define ORANGE 0x100400 | |||||
| #define WHITE 0x101010 | |||||
| */ | |||||
| void setup() { | |||||
| leds.begin(); | |||||
| } | |||||
| void loop() { | |||||
| // change all the LEDs in 1.5 seconds | |||||
| int microsec = 1500000 / leds.numPixels(); | |||||
| colorWipe(RED, microsec); | |||||
| colorWipe(GREEN, microsec); | |||||
| colorWipe(BLUE, microsec); | |||||
| colorWipe(YELLOW, microsec); | |||||
| colorWipe(PINK, microsec); | |||||
| colorWipe(ORANGE, microsec); | |||||
| colorWipe(WHITE, microsec); | |||||
| } | |||||
| void colorWipe(int color, int wait) { | |||||
| for (int i=0; i < leds.numPixels(); i++) { | |||||
| leds.setPixel(i, color); | |||||
| leds.show(); | |||||
| delayMicroseconds(wait); | |||||
| } | |||||
| } | |||||