HELP! Burning up boards. Software PWM driving 48 LEDs with Arduino MEGA

[I thought I already posted this, but it didn't show up. Sorry if this becomes a duplicate.]
Thanks, grumpy_mike. I understand the point about how the board can't directly power more than maybe 8 regular LEDs, so my "straightforward" idea won't fly. I guess I see what you mean about power dissipation on the TLC5940. As I read the graph, it says a maximum of about 2400 mW total at room temperature, which is 150 for each of the 16 outputs, meaning 16 20mA LEDs will work only with voltage below 7.5. And it can barely handle two 100mA 12VDC outputs. If that is all correct, then the TLC5940 doesn't really help much for projects like mine (where the lamp will total about 20 watts), unless I use it in conjunction with something else to handle the power.
Thanks for the education. I'm sure I would have burned up some more TLC5940's before I figured that out.
But about the ULN2003's: do you see any reason why they should not work? I tried to figure out from the data sheet what the ULN2003 might demand from the Arduino board. I don't understand everything there, but I need to learn some of this stuff, so please bear with me while I walk you through it rather than just ask you for the answer. I have ULN2003AINs, and from the electrical characteristics table I take it that those draw a maximum of 1.45mA (that's per input not per chip, I assume from the test figure schmatic). So for the 48 channels I am using (from 7 ULN2003s), that's about 70mA. That's over 1/3 of what the board can supply, but it should be fine if I'm don't have other things using up the remaining 130mA of board capacity. The only thing else I had attached was a little peizo buzzer (on a digital pin, but it was inactive) and 3 potentiometers (on analog pins). So if that is basically correct, my set-up with 7 ULN2003's should not overtax the Arduino mega. Right?
I'm really grateful for your help.