By the way, here is what you’re looking for (seriously trimmed to fit):
#include "Tlc5940.h"
#include "avr/pgmspace.h"
/*
const byte leds1 [] PROGMEM = {
0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0,
// 490 lines of similar data here
0, 0, 0, 5, 16, 42, 63, 54, 27, 8, 0, 0, 0, 0, 0, 2
};
const byte leds2 [] PROGMEM = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 490 lines of similar data here
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 255
};
const byte leds3 [] PROGMEM = {
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
// 490 lines of similar data here
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
const byte leds4 [] PROGMEM = {
255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 490 lines of similar data here
255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0
};
const byte leds5 [] PROGMEM = {
0, 24, 50, 0, 0, 0, 30, 0, 0, 45, 6, 0, 0, 8, 3, 0,
// 126 lines of similar data here
0, 35, 55, 0, 0, 36, 176, 0, 0, 164, 186, 0, 0, 29, 149, 0
};
int channel;
int line;
int intensity;
byte readout;
byte waiting = 100;
void setup()
{
Tlc.init(); // initialize the TLC library
Tlc.clear(); // turn off all the LEDs
}
void loop()
{
for (line = 0; line <= 491; line ++)
{
for (channel = 0; channel < 16; channel ++)
{
readout = pgm_read_byte_near(&leds2[channel+line*16]);
intensity = pow(readout,1.497);
Tlc.set(channel, intensity);
}
Tlc.update();
delay(waiting);
}
for (line = 0; line <= 491; line ++)
{
for (channel = 0; channel < 16; channel ++)
{
readout = pgm_read_byte_near(&leds1[channel+line*16]);
intensity = pow(readout,1.497);
Tlc.set(channel, intensity);
}
Tlc.update();
delay(waiting);
}
for (line = 0; line <= 491; line ++)
{
for (channel = 0; channel < 16; channel ++)
{
readout = pgm_read_byte_near(&leds3[channel+line*16]);
intensity = pow(readout,1.497);
Tlc.set(channel, intensity);
}
Tlc.update();
delay(waiting);
}
leds_4();
leds_fade();
leds_gyertya();
}
void leds_4()
{
for (line = 0; line <= 491; line ++)
{
for (channel = 0; channel < 16; channel ++)
{
readout = pgm_read_byte_near(&leds4[channel+line*16]);
intensity = pow(readout,1.497);
Tlc.set(channel, intensity);
}
Tlc.update();
delay(waiting);
}
}
void leds_fade()
{
for (int intensity = 0; intensity < 128; intensity ++)
{
Tlc.setAll(intensity*32);
Tlc.update();
delay(waiting/4);
}
for (int intensity = 127; intensity >= 0; intensity --)
{
Tlc.setAll(intensity*32);
Tlc.update();
delay(waiting/4);
}
}
void leds_gyertya()
{
for (line = 0; line <= 245; line ++)
{
for (channel = 0; channel < 16; channel ++)
{
readout = pgm_read_byte_near(&leds5[channel+line*16]);
intensity = pow(readout,1.497);
Tlc.set(channel, intensity);
}
Tlc.update();
delay(waiting);
}
for (line = 245; line <= 0; line --)
{
for (channel = 0; channel < 16; channel ++)
{
readout = pgm_read_byte_near(&leds5[channel+line*16]);
intensity = pow(readout,1.497);
Tlc.set(channel, intensity);
}
Tlc.update();
delay(waiting);
}
}