Code:
#define NUM_OF_OUTPUTS 12
#define MAX_NUM_LED_PER_OUTPUT 50
#define NUM_CHANNEL_PER_LED 4 // do not change this
const int num_channel_per_output = MAX_NUM_LED_PER_OUTPUT * NUM_CHANNEL_PER_LED;
const int num_universes_per_output = (num_channel_per_output%512) ? num_channel_per_output/512+1 : num_channel_per_output/512;
const int num_led_per_output = num_universes_per_output*512/NUM_CHANNEL_PER_LED;
#include <OctoWS2811.h>
DMAMEM uint32_t displayMemory[num_led_per_output * NUM_OF_OUTPUTS];
uint32_t drawingMemory[num_led_per_output * NUM_OF_OUTPUTS];
uint8_t pinList[12] = {0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; //PIN 1 flicker,6 and 7 Tivoli light
const int LEDconfig = WS2811_GRB | WS2811_800kHz;
OctoWS2811 LEDS(num_led_per_output, displayMemory, drawingMemory, LEDconfig, NUM_OF_OUTPUTS, pinList);
void setup() {
LEDS.begin();
}
void loop() {
//uint8_t val = map(sin(millis()/1000), -1.0, 1.0, 0x00, 0xFF);
//for (int i = 0; i < NUM_OF_OUTPUTS * num_led_per_output; i++) {
for (int i = 0; i < num_led_per_output; i++) {//CHANGE
//LEDS.setPixel(i, val, val, val, val);
LEDS.setPixel(i, 20, 20, 0);
LEDS.setPixel(i+50, 20, 20, 0);
LEDS.setPixel(i+100, 20, 20, 0);
LEDS.setPixel(i+150, 20, 20, 0);
LEDS.setPixel(i+200, 20, 20, 0);
LEDS.setPixel(i+250, 20, 20, 0);
LEDS.setPixel(i+300, 20, 20, 0);
LEDS.setPixel(i+350, 20, 20, 0);
LEDS.setPixel(i+400, 20, 20, 0);
LEDS.setPixel(i+450, 20, 20, 0);
LEDS.setPixel(i+500, 20, 20, 0);
LEDS.setPixel(i+550, 20, 20, 0);
LEDS.show();
delay(20);
LEDS.setPixel(i, 0, 0, 0);
LEDS.setPixel(i+50, 0, 0, 0);
LEDS.setPixel(i+100, 0, 0, 0);
LEDS.setPixel(i+150, 0, 0, 0);
LEDS.setPixel(i+200, 0, 0, 0);
LEDS.setPixel(i+250, 0, 0, 0);
LEDS.setPixel(i+300, 0, 0, 0);
LEDS.setPixel(i+350, 0, 0, 0);
LEDS.setPixel(i+400, 0, 0, 0);
LEDS.setPixel(i+450, 0, 0, 0);
LEDS.setPixel(i+500, 0, 0, 0);
LEDS.setPixel(i+550, 0, 0, 0);
//LEDS.setPixel(400, 0, 0, 255);
}
LEDS.show();
}