Library for TLC5940 16-channel PWM chip

Very cool! Are you just using serial to send data to the Arduino now?

As for dmx, you can use the Atmega168's USART (serial) module in receive mode. It supports the start/8 data bits/2 stop bits protocol of dmx, you just have to set the baud rate. (see the atmel datasheet). I don't know of an ic off the top of my head that converts from 2.5/-2.5V into a digital 0/5V signal, but I'm sure you can find one.