I'm working on an application that involves controlling around 64 LEDs, 14 solenoids, and has 2-3 button inputs. The LEDs are separated into 4 groups that need PWM-per-group, plus 33 individual ones that don't necessarily need PWM, though it would be nice to have them slow on/off.
My current plan is to control the 4 PWM groups directly from the arduino PWM pins, run a cascade of 74HC595's for the solenoid control, and another for the individual LEDs. Other pins will be for reading buttons (the interrupt pins, in particular), and controlling a relay to switch the high-voltage supply to the solenoids. My understanding is that I can use the analog pins 14-19 to make up for what I'm lacking in digital outputs.
For the single LEDs, it would be nice to have a fade on/off effect, or even full PWM. Even better would be to hand off all the logic to some sort of control/driver chip, and have fully addressable control over all the LEDs without a big programming overhead. Oh - the other constraint is that when they're full-on, they need to be full-on (not strobed), so I've decided against row/col multiplexing with a MAX7212 or similar.
So, question #1: can anyone suggest a chip that does PWM internally, or better yet some sort of automatic fading, and doesn't use multiplexing (and is cascadable, since I'm guessing I won't get 33 output pins)?