OK, this a first complete run. I was testing as i went and now everything seem to be working as anticipated. It running on a teensy 3.2. There is still along way to go on this project but is by far the most LEDs i have used at one time.
#include <OctoWS2811.h>
const int ledsPerStrip = 216;
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_GRB | WS2811_800kHz;
OctoWS2811 pixels(ledsPerStrip, displayMemory, drawingMemory, config);
uint16_t R = 255;
uint16_t B = 0;
uint16_t G = 0;
byte Brightness = 35;
uint16_t i = 0;
uint16_t j = 0;
#define DELAYVAL 1 // Time (in milliseconds) to pause between pixels
void setup() {
pixels.begin();
pixels.show();
Serial.begin(115200);
delay(1000);
Serial.println("Starting");
}
void loop() {
for (j = 0; j < 255; j++){
for (i=1; i<22; i++){
Wheel((i+j) & 255);
switch (i){
case 1:
led_one();
pixels.show();
break;
case 2:
led_two();
pixels.show();
break;
case 3:
led_three();
pixels.show();
break;
case 4:
led_four();
pixels.show();
break;
case 5:
led_five();
pixels.show();
break;
case 6:
led_six();
pixels.show();
break;
case 7:
led_seven();
pixels.show();
break;
case 8:
led_eight();
pixels.show();
break;
case 9:
led_nine();
pixels.show();
break;
case 10:
led_ten();
pixels.show();
break;
case 11:
led_eleven();
pixels.show();
break;
case 12:
led_twelve();
pixels.show();
break;
case 13:
led_thirteen();
pixels.show();
break;
case 14:
led_fourteen();
pixels.show();
break;
case 15:
led_fifteen();
pixels.show();
break;
case 16:
led_sixteen();
pixels.show();
break;
case 17:
led_seventeen();
pixels.show();
break;
case 18:
led_eighteen();
pixels.show();
break;
case 19:
led_nineteen();
pixels.show();
break;
case 20:
led_twenty();
pixels.show();
break;
case 21:
led_twentyone();
pixels.show();
break;
}
delay (DELAYVAL);
}
/*
if (R == 255){
R = 0;
B = 255;
}else if (B == 255){
B = 0;
G = 255;
}else{
G = 0;
R = 255;
}
*/
}
}
//there are 21 faux pixels
void led_one() {
for(byte n=0; n<36; n++) {
pixels.setPixel(n,R,G,B);
}
}
void led_two() {
pixels.setPixel(36,R,G,B);
pixels.setPixel(99,R,G,B);
pixels.setPixel(117,R,G,B);
pixels.setPixel(152,R,G,B);
pixels.setPixel(62,R,G,B);
pixels.setPixel(80,R,G,B);
}
void led_three() {
pixels.setPixel(37,R,G,B);
pixels.setPixel(100,R,G,B);
pixels.setPixel(118,R,G,B);
pixels.setPixel(151,R,G,B);
pixels.setPixel(61,R,G,B);
pixels.setPixel(79,R,G,B);
}
void led_four() {
pixels.setPixel(38,R,G,B);
pixels.setPixel(101,R,G,B);
pixels.setPixel(119,R,G,B);
pixels.setPixel(150,R,G,B);
pixels.setPixel(60,R,G,B);
pixels.setPixel(78,R,G,B);
}
void led_five() {
pixels.setPixel(39,R,G,B);
pixels.setPixel(102,R,G,B);
pixels.setPixel(120,R,G,B);
pixels.setPixel(149,R,G,B);
pixels.setPixel(59,R,G,B);
pixels.setPixel(77,R,G,B);
}
void led_six() {
pixels.setPixel(40,R,G,B);
pixels.setPixel(103,R,G,B);
pixels.setPixel(121,R,G,B);
pixels.setPixel(148,R,G,B);
pixels.setPixel(58,R,G,B);
pixels.setPixel(76,R,G,B);
}
void led_seven() {
pixels.setPixel(41,R,G,B);
pixels.setPixel(104,R,G,B);
pixels.setPixel(122,R,G,B);
pixels.setPixel(147,R,G,B);
pixels.setPixel(57,R,G,B);
pixels.setPixel(75,R,G,B);
}
void led_eight() {
pixels.setPixel(42,R,G,B);
pixels.setPixel(105,R,G,B);
pixels.setPixel(123,R,G,B);
pixels.setPixel(146,R,G,B);
pixels.setPixel(56,R,G,B);
pixels.setPixel(74,R,G,B);
}
void led_nine() {
pixels.setPixel(43,R,G,B);
pixels.setPixel(106,R,G,B);
pixels.setPixel(124,R,G,B);
pixels.setPixel(144,R,G,B);
pixels.setPixel(55,R,G,B);
pixels.setPixel(73,R,G,B);
}
void led_ten() {
pixels.setPixel(44,R,G,B);
pixels.setPixel(107,R,G,B);
pixels.setPixel(125,R,G,B);
pixels.setPixel(143,R,G,B);
pixels.setPixel(54,R,G,B);
pixels.setPixel(72,R,G,B);
}
void led_eleven() {
for(byte n=0; n<9; n++){
pixels.setPixel(45+n,R,G,B);
pixels.setPixel(63+n,R,G,B);
pixels.setPixel(108+n,R,G,B);
pixels.setPixel(135+n,R,G,B);
}
}
void led_twelve() {
pixels.setPixel(153,R,G,B);
pixels.setPixel(126,R,G,B);
pixels.setPixel(81,R,G,B);
pixels.setPixel(207,R,G,B);
pixels.setPixel(206,R,G,B);
pixels.setPixel(98,R,G,B);
}
void led_thirteen() {
pixels.setPixel(154,R,G,B);
pixels.setPixel(127,R,G,B);
pixels.setPixel(82,R,G,B);
pixels.setPixel(208,R,G,B);
pixels.setPixel(205,R,G,B);
pixels.setPixel(97,R,G,B);
}
void led_fourteen() {
pixels.setPixel(155,R,G,B);
pixels.setPixel(128,R,G,B);
pixels.setPixel(83,R,G,B);
pixels.setPixel(209,R,G,B);
pixels.setPixel(204,R,G,B);
pixels.setPixel(96,R,G,B);
}
void led_fifteen() {
pixels.setPixel(156,R,G,B);
pixels.setPixel(129,R,G,B);
pixels.setPixel(84,R,G,B);
pixels.setPixel(210,R,G,B);
pixels.setPixel(203,R,G,B);
pixels.setPixel(95,R,G,B);
}
void led_sixteen() {
pixels.setPixel(157,R,G,B);
pixels.setPixel(130,R,G,B);
pixels.setPixel(85,R,G,B);
pixels.setPixel(211,R,G,B);
pixels.setPixel(202,R,G,B);
pixels.setPixel(94,R,G,B);
}
void led_seventeen() {
pixels.setPixel(158,R,G,B);
pixels.setPixel(131,R,G,B);
pixels.setPixel(86,R,G,B);
pixels.setPixel(212,R,G,B);
pixels.setPixel(201,R,G,B);
pixels.setPixel(93,R,G,B);
}
void led_eighteen() {
pixels.setPixel(159,R,G,B);
pixels.setPixel(132,R,G,B);
pixels.setPixel(87,R,G,B);
pixels.setPixel(213,R,G,B);
pixels.setPixel(200,R,G,B);
pixels.setPixel(92,R,G,B);
}
void led_nineteen() {
pixels.setPixel(160,R,G,B);
pixels.setPixel(133,R,G,B);
pixels.setPixel(88,R,G,B);
pixels.setPixel(214,R,G,B);
pixels.setPixel(199,R,G,B);
pixels.setPixel(91,R,G,B);
}
void led_twenty() {
pixels.setPixel(161,R,G,B);
pixels.setPixel(134,R,G,B);
pixels.setPixel(89,R,G,B);
pixels.setPixel(215,R,G,B);
pixels.setPixel(198,R,G,B);
pixels.setPixel(90,R,G,B);
}
void led_twentyone() {
for(int n=0; n<9; n++){
pixels.setPixel(162+n,R,G,B);
pixels.setPixel(171+n,R,G,B);
pixels.setPixel(180+n,R,G,B);
pixels.setPixel(189+n,R,G,B);
}
}
uint32_t Wheel(byte WheelPos) {
Serial.print("WheelPos: ");
Serial.print(WheelPos);
WheelPos = 255 - WheelPos;
Serial.print(" : ");
Serial.println(WheelPos);
if(WheelPos < 85) {
R = 255 - WheelPos * 3;
G = 0;
B = WheelPos *3;
set_bright();
return;
//return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
R = 0;
G = WheelPos * 3;
B = 255 - WheelPos * 3;
set_bright();
return;
//return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
R = WheelPos *3;
G = 255 - WheelPos * 3;
B = 0;
set_bright();
return;
//return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
void set_bright() {
R = (R * Brightness) >> 8;
G = (G * Brightness) >> 8;
B = (B * Brightness) >> 8;
}