I'm trying to implement a XY table using 4 units of these motorized potentiometer, controlled by an Arduino. Since I have other uses in mind, I'd like to use as few pins as possible, wich would imply multiplexing both motor control and potentiometer reading.

I assume I could use a 4:1 multiplexer to use the potentiometer in a feedback loop, but how exactly could I multiplex the motors? I am planning to use 4 H-bridges to drive each motor, but even assuming I don't want to control movement speed I would need 8 pins (enable + direction). Can I achieve that with a shift register?

On the other hand, what gain could a XY table possibly have by controlling the speed of the motors (either all of them or individually)? Would I get more precision/resolution/speed?


1 Answer 1


For the H bridges, if the motor voltage is low i.e. less than 10V, please consider the implications of some types of H bridge listed in this answer. For the multiplexing of the potentiometers you can use a serial/SPI controlled analogue switch such as the ADG714 - it has 8 normally open switches but is restricted to logic level voltages.

Providing PWM control isn't needed (difficult to multiplex) the ADG714 can probably also help out - use the analogue switches to control enable and direction pins. Note that 2 ADG414s can be cascaded from one serial SPI bus so no extra pins are required.

If you are happy with constant speed I'd stick with it but you could implement a slow/fast speed regime by gating a 50:50 square wave oscillator to the FETs. You could take this further by using the LTC6992 PWM control chip - it needs an analogue input that could be provided from a serial DAC.

  • \$\begingroup\$ Wouldn't I use less pins if I used shift registers? \$\endgroup\$
    – joaocandre
    May 5, 2014 at 15:02
  • \$\begingroup\$ @joaocandre the ADG714 is a shift register - it needs data and clock but has an output parallel buffer controlled by SYNC which means you can update the serial byte (or bytes) without the data rippling through the outputs and possibly causing havoc for a few milli seconds. \$\endgroup\$
    – Andy aka
    May 5, 2014 at 16:18
  • \$\begingroup\$ Don't shift registers "hold" the parallel values while receiving serial data? I had been looking into 74HC595D, which seems to be a rather popular solution. \$\endgroup\$
    – joaocandre
    May 5, 2014 at 16:31
  • \$\begingroup\$ @joaocandre absolutely this device does hence, like the 714, it needs a three wire interface; 2 for clocking the new data in and one for the parallel update. With the 714 you can use it like an analogue switch or a logic device with appropriate pull-up or pull-down. \$\endgroup\$
    – Andy aka
    May 5, 2014 at 17:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.