|
|
|
|
|
|
|
|
|
|
|
#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); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|