# Reducing H-bridge inputs for multiple motors with same direction

I need to control 5 motors independently from a microcontroller. At stall these motors only draw around .25A.

What is a circuit I can use for controlling 5 DC motors that draw about .25A max with as few pins as possible, under the condition that they will all be moving in the same direction at the same time (though possibly at different rates).

1. use a full H-bridge for each one. 10 pins (base case)
2. use one high-current half-H and 5 regular half-H, one side of motors all in parallel on the half-H. 6 pins
3. use full-H for each motor, put one side of them in parallel. 6 pins
4. use some magic IC (which I will find myself) where I can tie a digital direction input together for all chips. 6 pins
5. use some IC that takes PWM signal and drives DC motor, 5 pins
• This is a product recommendation. Read the rules. Aug 12, 2017 at 20:12
• @OlinLathrop yep, but that's only one or two of a more complex set of questions. I think we can ignore the prod rec question. See my answer. Aug 12, 2017 at 20:14
• @Marcus: I quit after reading the title. It seemed pretty clear. Aug 12, 2017 at 20:24

simulate this circuit – Schematic created using CircuitLab

Figure 1. Where all motors only move the same direction one high current half-H-bridge can manage the motor common with individual half-bridges controlling the individual motors.

Number of switches required, $n = 2 + 2m$ where $m$ is the number of motors. For five fingers 12 control pins would be required. (With individual H-bridges 20 would be required.)

I was thinking about just tying one side of 5 H-bridges together, but is it really that simple?

Nah, not really. Motors under different conditions (stalled/moving) will behave differently, and thus, this will possibly have pretty adverse effects.

Aside from it sounding a mechanically bad idea to have a complex finger system, and then just move them all at once, at the same speed, in the same direction. If you wanted that, a simpler three-pronged, single-actuator-driven gripper like a grab-exvacator has would have done the job much cheaper, faster, reliably…

No, if you have a hand, you'll need to drive these motors separately, especially if you want to take advantage of the fact that a hand can actually effect different forces with different fingers, and can thus both throw stones and lift dry leaves.

So, having an MCU with too little pins to drive all the motors you have is a bad start. This should be the easy part of your hand's design! You shouldn't be making your system worse, just because you chose the wrong MCU. Fix the MCU choice instead.

Get flexible motor drivers – we can't recommend anything without even knowing the types of motors your dealing with. Get an MCU that is made for such tasks. There's a lot of MCUs that come with integrated motor control logic and high IO pin counts. It's not rare to see a 144 pin MCU, or even higher BGA pad counts!

From an ease of programming and computational power point of view, you're probably looking for something with an ARM Cortex-M4 core and quite some RAM. ST Micro makes interesting ICs for that purpose, and so do NXP and TI.

• I think s/he doesn't want to move them all in the same speed or all at once. See if you think I've understood the question. Aug 12, 2017 at 20:21
• Yeh exactly. This is for a robotic prosthetic hand. Each finger will be told to move separately, but they will all move in the same direction. I.e. the hand will be opening or closing, but when closing fingers may travel to different points depending on the shape of the object being grabbed. MCU choice is constrained by two things, size, since this has to fit in an arm, and ease of use. This is a project I'm doing with an amputee who doesn't have any technical experience so I'm sticking with a small arduino variant. Need to leave pins open for various sensing and other inputs. Aug 13, 2017 at 5:48
• I just figured, why waste 10 pins when, logic-wise, all of the motors share a direction. Aug 13, 2017 at 5:51