I'm aiming to control 4 motorized faders with an Arduino. However, I'm still trying to figure out how to best multiplex all the inputs/outputs. Each fader has two potentionmeters and one touch capacitive sensor, and even if I discard the touch sensing pin I still need at least 4 inputs per fader (16 in total). On the other hand, I don't know if it would be possible to mux the four DC motors, but I wouldn't discard reserving 4 PWM pins for each indivual motor. I've read that it is possible to achieve this with either multiplexers or shift registers: but what would be the advantage of each approach? I predict each motor would be operating at 10V@0.8A max.
EDIT: I have no actual "fixed" requirements for how fast the motors should run, I'm trying to estimate what kind of speeds I would get with each approach, and if how much I would gain if used dedicated PWM pins for each motor (besides being able to control them "simultaneously")
Best Answer
Why do you need 4 inputs per fader? I presume that one is for sensing position, and one is for the actual gain of the fader (which is supposed to be analog) -- the Arduino only needs to read one of them. If that's a voltage divider between 5V and GND, you only get one analog input per fader for position.
If touch is a digital signal, or can be determined with a comparator, you can then use a digital input for that. Or, as you said, ignore touch.
Finally, you have 6 PWM outputs, but only need 4, and then another output each for direction, assuming you have a reasonable motor controller with enable/direction inputs.
So on an Arduino UNO:
Total, 12 digital pins, 4 analog pins. Leaves the serial port (D0/D1) free for programming, and I2C (A4/A5) free for I2C.