I'm a little confused on specifications and limitations here...

I have 3 (130-size, I believe) DC motors I'm attempting to control with an Arduino. They are running off of a 7.2V NiMH battery pack, regulated by some simple switches.

Now, I know that the Arduino can't independently power motors. So, my next thought is using a transistor.

However, according to the guide I'm following, each motor (two motors?) will pull (continuously) 15A. I'm looking at the specifications of things like the TIP-120 and even the Arduino motor shield, but they only seem to be able to control 0.x mA - 1A per channel.

This seems like a lot of amps/a typo, but the guide continuously references these high currents (using 10A rated switches) - and when I try to research gates rated for such high currents, I get very expensive, very niche components.

Am I over-complicating or misunderstanding things? Does the voltage upgrade simply make things that much harder to work with?

Ultimately, my goal is to have the Arduino read all of the switches (which I think I can handle), do logic, and control output to the motors - that part I'm a little unsure of.

  • \$\begingroup\$ If your motors draw so much current (15A), use relays. \$\endgroup\$
    – Mike Spark
    Commented Oct 14, 2014 at 16:35
  • \$\begingroup\$ 130-size motors will not pull 15A for very long. \$\endgroup\$
    – user16324
    Commented Oct 14, 2014 at 19:36
  • \$\begingroup\$ @BrianDrummond, what do you mean? 15A is only the current required to get them up to speed, or that's an overestimation of their power requirements (or the voltage that in turn runs 15A through the motors will significantly shorten their lifespan)? \$\endgroup\$
    – daltonf
    Commented Oct 14, 2014 at 21:27
  • \$\begingroup\$ Estimate the temperature rise in that package of 15A and their winding resistance. I expect they can take it for a few seconds on a fairly low duty cycle. Which is probably fine for the original application on the linked page. \$\endgroup\$
    – user16324
    Commented Oct 14, 2014 at 22:06
  • \$\begingroup\$ @BrianDrummond Ah, I see. Upon further investigation, I'm thinking "15A" is the load of both of the motors running. Does that sound more reasonable? (7A per motor (?), although still out of the range of a simple transistor/motor controller) \$\endgroup\$
    – daltonf
    Commented Oct 14, 2014 at 22:07

2 Answers 2


The motors only go in one direction so you don't need an H bridge. Just use a logic-level power MOSFET such as IRL3103, which can be driven directly from the Arduino. To use N channel FETs you will need to change the circuit so that the motor common goes to battery positive rather than negative, but this shouldn't be hard.

You should also put a diode across the motor to prevent voltage spikes from damaging the FET, and a Gate resistor to avoid high frequency ringing. The circuit might go something like this:-


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ Thank you so much for your answer! Where you have motor+ and motor-, are (can) those represent the 2 130-motors wired in series? Or would I need a MOSFET/diode/resistor for each motor (the pair doesn't need to be individually controlled)? \$\endgroup\$
    – daltonf
    Commented Oct 14, 2014 at 23:59
  • \$\begingroup\$ The two flywheel motors are in parallel, and can be driven by a single FET. The pusher motor has a short placed across it when turned off, presumably to make it stop faster. You might need to put a P channel MOSFET across it to emulate this switch action. \$\endgroup\$ Commented Oct 15, 2014 at 9:09
  • \$\begingroup\$ You should add a high value resistor from the gate to ground in order to pull the gate low when the arduino is off or booting and the gpio is floating. \$\endgroup\$
    – Mike
    Commented Oct 15, 2014 at 10:19
  • \$\begingroup\$ Great! Could I pick up IRL3013s at my local RadioShack? I've searched online but the pickings are slim - do they go by another name? \$\endgroup\$
    – daltonf
    Commented Oct 15, 2014 at 14:22
  • 1
    \$\begingroup\$ @smirkingman Schottky for fast switching and low voltage drop, 3A because at half throttle it passes half the motor current. 40V just because it's a popular voltage rating (needs to be significantly higher than battery voltage + spikes, so 20V would probably be enough in this circuit). SR360 should be fine but IRFZ44N requires 10V Gate drive to turn on fully so you would need a level convertor to drive it from 5V logic. \$\endgroup\$ Commented Jun 7, 2018 at 5:19

Looking for high current mosfets can work, but dedicated motor driver ICs or h-bridge drivers would be what you want. Alternatively, some automotive grade relays can easily solve this as well. You can trigger them using an arduino with simple transistors or fets.

  • \$\begingroup\$ Following Bruce's answer, I wouldn't need an H-bridge if the motors only need to go in one direction, correct? \$\endgroup\$
    – daltonf
    Commented Oct 15, 2014 at 0:12
  • \$\begingroup\$ @DaltonA. correct. Keep in mind that H-Bridges Drivers can often be used in single drive mode as well. H-Bridges are just two motors drivers combined to control one motor. \$\endgroup\$
    – Passerby
    Commented Oct 15, 2014 at 0:35
  • 1
    \$\begingroup\$ @DaltonA. sometimes you can get things called "Half bridges", and a Quad half bridge could be used to drive 4 motors in 1 direction, or used as an H bridge to drive 2 motors bi-directional for example. \$\endgroup\$
    – KyranF
    Commented Oct 15, 2014 at 18:43

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.