Multiplexing several motorized faders

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.

How much current do the motors draw?

The link (on the Sparkfun page) to the datasheet doesn't work. Have you a working link?

...R

According to the datasheet, the fader is rated for 6-11V and at 10V draws 800mA

Are we not allowed to share the datasheet?

It seems to me the simplest thing would be to experiment with the L293 and see what happens. If you are careful with the voltage you shouldn't damage the slider motor. Make sure the L293 has a separate power supply and is NOT drawing from the Arduino 5v pin.

Do you plan to or need to control the speed of the slider motors?

...R

The datasheet is not very detailed, but here it goes: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/General/MD100AM2B-D-9-2M8.2-2B10K1B10K-6H(SPEC).pdf (just needed to ad ").pdf") to the Sparkfun link.

I would only implement motor speed control if there was anything to gain with it. I don't have experience with XY systems/plotters, or what type of control they require for best performance, though I was planning to use the potentiometer feedback to adjust position.

Thanks for the link, and having seen it I'm sorry I asked :slight_smile:

It seems to say (near the end) 20mm in 0.1 seconds - which seems very fast. If I am reading that correctly I suspect you would need speed control.

I think a few hours of experimenting are required.

...R

It is very fast indeed, though I've tested with 6V and 11-12V and speed doesn't really change (or the difference might be too small to notice). I still don't fully understand the operating range, and my experimental setup is not ideal at the moment and I'd like to avoid driving the potentiometer against the edges which could damage the motor.

Regarding speed control, what kind of circuitry could I make use of to somehow multiplex analog/PWM value to the motor voltage?

As far as I know the L293 can be fed with the PWM signal from the Arduino analogWrite() - to the enable pin, I think.

...R