/* * Fadecandy Firmware * For Arduino with Teensyduino and OctoWS2811. * * Copyright <c> 2013 Micah Elizabeth Scott. <micah@scanlime.org> */ #include <OctoWS2811.h> #include <math.h> #include "hcolor.h" static const int ledsPerStrip = 64; static const int ledsTotal = ledsPerStrip * 8; DMAMEM int displayMemory[ledsPerStrip * 6]; int drawingMemory[ledsPerStrip * 6]; OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, WS2811_GRB | WS2811_800kHz); HPixelBuffer<ledsTotal> pixbuf; uint16_t sinelut[1024]; void setup() { leds.begin(); Serial.begin(115200); for (unsigned i = 0; i < ledsTotal; ++i) { pixbuf.pixels[i].color = HColor16(0,0,0); } // Quick and dirty... for (unsigned i = 0; i < 1024; ++i) { sinelut[i] = pow(sin(i * (M_PI * 2 / 1024)) * 0.5 + 0.5, 2.2) * 0x1000; } } void loop() { // XXX: Proof of concept for (int i = 0; i < 16; i++) { int t = (millis() >> 2) + (i << 4); unsigned c = sinelut[t & 1023]; pixbuf.pixels[i].color = HColor16(c>>2, c, c>>1); } pixbuf.show(leds); }