Hi, last year with the help of some wonderful people in this forum I was able to write a code that addresses LEDs individually.
However it gets exhausting writing each color when I use a lot of LEDs. I found this wonder program LED Matrix Studio that exports code from a drawing program. It output $00 hex which I can easily replace with 0x so I can use it with FastLED.
However my code addresses LEDs is like
LED 1- frame 1, frame 2, frame 3...
LED 2- frame 1, frame 2, frame 3...
LED 3- frame 1, frame 2, frame 3...
......
I'm trying to modify it to be this so I can use the output from the LED Matrix Studio
frame 1 -LED 1, LED 2, LED 3...
frame 2 -LED 1, LED 2, LED 3...
frame 3 -LED 1, LED 2, LED 3...
......
Any help is appreciated!
Here's my code.
#include <FastLED.h>
#define NUM_LEDS 120
#define DATA_PIN 5
#define CLOCK_PIN 6
CRGB DOT[NUM_LEDS];
unsigned long previousMillis[NUM_LEDS] = {};
byte indexes[NUM_LEDS] = {0};
const byte MAX_NUM_OF_PERIODS =5;
long COLOR[][MAX_NUM_OF_PERIODS] =
{
{0xFFFF00, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0xFF007F, 0x000000, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0xFF007F, 0x000000, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0xFF007F, 0x000000, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
{0x000000, 0x000000, 0x000000, 0xFF007F, -1},
};
int FR = 150;
void setup() {
FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, BGR> (DOT, NUM_LEDS);
FastLED.setBrightness(10);
}
void loop() {
unsigned long currentMillis = millis();
for(int LED = 0; LED < NUM_LEDS; LED++) {
if(currentMillis - previousMillis[LED] >= FR) {
DOT[LED] = COLOR[LED][indexes[LED]];
FastLED.show();
previousMillis[LED] = currentMillis;
indexes[LED]++;
}
if (COLOR[LED][indexes[LED]] == -1) {
indexes[LED] = 0;
}
}
}