The TLC5940 is a 16-channel, constant-current sink LED driver. Each channel has an individually adjustable 4096-step grayscale PWM brightness control and a 64-step, constant-current sink (no LED resistors needed!).
This library supports daisy-chaining multiple chips together. I haven't tried this library on anything but a Diecimila, so YMMV.
The most useful functions:
Tlc.analogWrite(channel (0 - 15), value (0 - 4095), chip (0 - n));
Tlc.analogWriteAll(value (0- 4095), chip (0 - n));
Tlc.setPWMperiod(PWM period (0 - n) milliseconds);
TLC5940.zip:
http://students.washington.edu/acleone/codes/arduino_TLC5940_library/TLC5940.zip
Browse the library:
http://students.washington.edu/acleone/codes/arduino_TLC5940_library/TLC5940/
In progress: TLC5940 Servo Library
Change log:
v001 - 08-08-08: Cleaned everything up a bit. Renamed stopPWM() to stopTimers() and made a resetTimers(). Added a setPWMuPeriod(uPeriod) for setting the PWM period in microseconds. Changed readXERR() to return 1 if there is an error (LED shorted/broken), 0 otherwise.