I am struggling with the same thing:
Doing the PWM in software does not result in smooth 'dimming' on all outputs.
Multiplexing doesn't work because it is serial in the end.
So my thoughts are:
- Use a CMOS Serial Digital Pulse Width Modulator (CDP68HC68W1) for each Led/Dimmer. (This device can be programmed to continuously produce a pulse with a specified pulse-width and even frequency.)
- Drive 12 of these from a multiplexer connected to the Arduino board.
On the programming side it would look something like this:
for (int i=0;i<12;i++) {
// set multiplexer to output i;
// write serial message through multiplexer to corresponding CMOS Serial Digital Pulse Width Modulator
}