I am trying to use an IRLB3034 with an Arduino even though it is not a logic level MOSFET. I am planning on using an LM2937 12v regulator like the schematic below:


The connection going off the page goes to an Arduino digital pin pulled down with a 10k resistor. I assumed this would work but wanted to check. As a side note, if anyone could recommend a similar MOSFET that could handle 200a and 40v (in TH) that would be great. (Only if such thing excists or is readily available)

EDIT: I have not made it clear what I am planning on using this for so I will now. It is to drive an airsoft motor and I want to use the LM2937 because I didn't think I could turn the mosfet on and off with the arduinos 5v - because the IRLB3034 isn't a logic level mosfet - so that is the reason I added the 12v regulator.

EDIT (Sorry for the previous incorrect name)

EDIT: Unfortunately, I have made a mistake, the current is not 200 amps, it is infact 30-40 amps. I don't know how I made this mistake but I think it will be helpful for people trying to follow along. I am currently trying to use busbars/6awg copper wire to carry the high-ish current around. (Only 40 amps now though)

EDIT: This question is different because it is asking how to convert 5v to 12v to run a mosfet rather then how to use a mosfet with an arduino in the best way like the other post. The accepted answer on this post also answers the other question though.

  • \$\begingroup\$ Your circuit seems incorrect. J1 goes directly to Gnd. If the Gnd symbol was not there than ALL the motor current would go through whatever connects to J1 ….and it can't be an Arduino GPIO port. In addition, what do you think D3 does? And if you are talking about driving the LM2971 with a GPIO port.....think again. \$\endgroup\$ May 11, 2019 at 15:50
  • \$\begingroup\$ Ah yes, my circuit is incorrect. I will repost the updated version as an edit. D3 is to "soak up" any current spikes, but that's just me quoting a few pages. \$\endgroup\$ May 11, 2019 at 15:54
  • \$\begingroup\$ You might be better to draw a schematic including the Arduino GPIO and describe the motor you are trying to drive. \$\endgroup\$ May 11, 2019 at 15:54
  • 1
    \$\begingroup\$ I answered your question as it is stated because even though what you're proposing is unworkable, and is obviously so to someone with any experience, it's an excellent example of a pitfall that someone with just Arduino experience may fall into. Please post another question with a title of something like "How do I drive a MOSFET gate when I have a 40V supply and an Arduino?" If no one else answerse, I will (or I'll find a duplicate question for you). \$\endgroup\$
    – TimWescott
    May 11, 2019 at 16:16
  • 2
    \$\begingroup\$ Possible duplicate of How do I drive a MOSFET when I have an 11.1v power-supply and an arduino which entirely replaces the mistaken approach attempted here with a proper direction of solution to the problem. \$\endgroup\$ May 11, 2019 at 18:06

2 Answers 2


How do I drive a DC brush motor (12V?) @ 200A from an Arduino GPIO?

You give very little in the way of specification, but in general the FET you chose (IRLB3034PbF) Will NOT be able to handle 200A continuous. If you examine the datasheet you will find it is limited by the bondwire capability of 195A, but you'd be hard pressed to make connections to the device to support this current level.

In your schematic the use of a linear regulator to 'drive' the FET won't work. You need to supply an adequate drive voltage and be able to switch that on and off with the Arduino.

I'd make the following suggestions:

  1. Use two (or even 3) of the FETs you chose in parallel to support the current requirement of your motor (assuming it is a surge rating)
  2. Use your 12V supply to provide drive voltage to the output FETs

Perhaps a circuit such as this may work for you:


simulate this circuit – Schematic created using CircuitLab

Note that when you initialize an ATMega328, after a reset all the DIO pins are set as inputs. If this condition is not handled, the Motor may be energized monetarily until the Pin direction is set and at the correct (motor off) logic level. This could be dangerous so really needs to be handled in the hardware.
Here, since M4 gate is pulled low if the Arduino Pin is floating or pulled high by the internal pullup ...then M3 is ON and the motor cannot be driven.
Setting the Arduino pin to an output AND setting it high will turn ON M4, and turn M3 OFF to drive the output FETs.

D1 serves to clamp any backemf generated by the motor, using just one of the output devices to dissipate the energy.

This circuit configuration would work for higher voltages but you'd have to change the output FETs to something suitable for the higher voltage.

  • \$\begingroup\$ Comments are not for extended discussion; this conversation has been moved to chat. Any conclusions reached should be edited back into the question and/or any answer(s). \$\endgroup\$
    – Dave Tweed
    May 12, 2019 at 0:39
  • \$\begingroup\$ So, unfortunately, it is in fact 40amps instead. My mistake and I will try and correct any mistakes in the things I have written. My question is what do I hook-up battery negative to ground, and battery positive to V1? Thanks \$\endgroup\$ May 13, 2019 at 16:36
  • \$\begingroup\$ @VosemMedia V1 simply represents your 12V battery. 40A would require only one output device so you could eliminate M1 \$\endgroup\$ May 14, 2019 at 5:09
  • \$\begingroup\$ Okay perfect, I'll create the PCB. \$\endgroup\$ May 14, 2019 at 6:36
  • 1
    \$\begingroup\$ @VosemMedia you have not left out M1, D3 should be a 27V Zener, and why on earth would you use the same powerFET in all positions???? \$\endgroup\$ May 14, 2019 at 16:51

The LM7937 is a linear voltage regulator. That means that it operates by reducing the voltage on it's VIN pin. The best you'll ever get on its output is about 100mV less than the voltage on its input.

You need some sort of a charge pump or boost regulator to generate 12V from 5V, or you need to use your (presumably 40V) motor supply to drive your gate.

  • \$\begingroup\$ The motor is 11.1v, the guides I have been using suggest it will but I don't know. I want to use an arduino to switch on and off the mosfet so will something like this do? newark.com/international-rectifier/irfp3206pbf/… \$\endgroup\$ May 11, 2019 at 16:15
  • \$\begingroup\$ ThIs should be a comment surely? \$\endgroup\$ May 11, 2019 at 16:16
  • \$\begingroup\$ I am creating a new post on how to use a MOSFET gate when I have a 40v supply and an arduino as this post is no longer relevant. \$\endgroup\$ May 11, 2019 at 16:18
  • \$\begingroup\$ I considered that -- it depends on whether the question boils down to "how do I drive a motor" or "can an LM2937 boost voltage". I chose to answer the latter, just so that the example is out there. (And I do believe that this post is relevant, for other folks approaching their problems from the same knowledge base). \$\endgroup\$
    – TimWescott
    May 11, 2019 at 16:18
  • \$\begingroup\$ Sorry, what I meant was nothing more could be gained from this question \$\endgroup\$ May 11, 2019 at 16:34

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.