I'm trying to put together a general schematic of an Arduino-controlled XY table based on the motorized faders available at Sparkfun Slide Pot - Motorized (10k Linear Taper) - COM-10976 - SparkFun Electronics . Right now I think I got almost everything figured out, but would like some feedback and sugestions seeins as this is my first major Arduino project.
I've thought about using 4 motorized faders to build the XY table - the mechanical system is not important at this stage. I'd like to build something similar to an Arduino "shield" able to interface with an Intel Galileo and control 4 of these units independently, as well as read the pot voltages. As I don't have much I/O pins to spare and still have other uses for the board in mind, I want to use as less pins as possible - wich implies I'm going to need to multiplex motor control and sensor readout, and I'm of the opinion that SPI might be the best solution since it Galileo is able to handle 25MHz and there have been some issues related with slow I/O pin frequency (reportedly only around ~200 Hz - not sure about the extent to which this issue affects SPI data lines).
Regarding motor drivers, I've read about some issues with the largely popular L293D H-bridge and low voltage motors. The motors in the faders are rated for 8-11V operating voltage, though I think they would be able to handle higher voltages. Even so, having this in mind, I'm thinking about using a DRV8837 or MC3887 driver for each motor. These drivers would be controlled by a serial-in parallel-out shift register (simple 74HC595) with 4 bits for the enable pins and 4 bits for the motor direction.
Motor speed would either be fixed at 10~11V (or an higher voltage if it ends up being too slow) or controlled indivually by a PWM pin. This is where I have more doubts - I'm not sure if a simple MOSFET PWM-controlled switch is enough to properly modulate motor voltage (higher motor voltages than 5V logic), or if it is possibly to directly control the speed in the motor driver, or even if there is the need to control the speed/is worth the hassle. Mind you, I just want to sweep a 10x8 cm grid as fast as possible - anything under ~10-20s is more than enough - would I get better movement "resolution" if I controlled the speed?
I've planned an analog multiplexer to switch between the potentiometer inputs. I've yet to find a SPI-controlled multiplexer, but worst case scenario I'd use a 2-bit controlled mux able to choose analog read.
With all this, I'd only need to use an anlog pin to read potentiometer input, slave select pins for the mux and shift register, and 1-4 PWM outputs and the SPI data lines (9 in total). This is pretty much still in the concept phase, which is why I would need some feedback and welcome any suggestion/remark that might improve this.