Multiply the analog Outputs up to 12 channels

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
}