About: Greetings ! I'm Tanay, a hobbyist interested in making robots and sharing stuff. I hope that my instructables help you in solving your problems Happy Tinkering ! Note : Sorry for the inconvenience but I won...

Want to drive some low turn - high current motors ? well you can make your own high current motor driver with some MOSFETs.

2 x IRF540N
2 x IRF9540N
2 x 10k resistors
1 x diode
3 x male headers
2 x MCT2E ( or equivalent optoisolators / optocouplers )
4 x Heat Sinks
1 x DC fan ( optional )
1 x 2 pin terminal blocks

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Layout and Schematic

The schematic looks pretty simple.  It has been labelled with every part and their value .  The output headers have a ground pin  and 2 input pins which can work on PWM too. 

Step 2: Using and Basic Working

The circuit can work with or without a micro-controller. Micro-controllers can be used to give PWM inputs to the driver and control the motor speed.  The first pin on the header is for input , the second is ground on micro-controller and the third is input 2 . 


Why optocouplers / optoisolators ?
- Because they "isolate" the HIGH current circuit optically from the microcontroller board.

Why these heatsinks and fans ?
- The low turn motors use more than 10 amps which can create heating issues which could reduce the performance and also sometimes damage the components .

Happy tinkering !

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    29 Discussions


    1 year ago

    I just made the same circuit on breadboard just to check if it is working or not.

    I used 5v dc supply at one of the input keeping other at ground. I then connected my multimeter across the pins A and B to check voltage but it was nill.

    I checked many times the same and still the same.

    It would be great if you can provide me with the PCB board design so that i can use it to design my own.

    Also can i know why is this happening.


    2 years ago

    i am using stepper motor of rating 4.7amp and of 2 volts..which driver will be best for it?


    Reply 3 years ago

    Instead of MCT2E you may use any other optoisolator ( optocoupler ) rated with nearly the same operation frequency.


    3 years ago

    At max how much current this driver can deliver?


    3 years ago

    can i drive 24v motor with this by 13A current.

    or can you tell me an alternative

    thanks in advance.


    5 years ago on Introduction

    I don't want to dissappoint you, but I highly doubt that this circuit can deliver 30A continuously. Reasons why:

    1. Even thou the irf540n is rated 33A the irf9540n supports 23A max.

    2. FETs do not switch instantly, they need some time to "charge up". While charging they change from infinite resistance (open switch) to low resistance (closed swich) so the resistance passes "medium" values which dissapate much power. Since you're using a 10k resistor to charge the gates it takes a long (0.5ms?) to switch the low-side on and the high-side off.

    3. Since switching takes some time, there will be a short time when both, the high and the low side, are switched on. This will result in a so called "shot-through", basicly a short circuit, resulting in a massiv power disappation (depending on how much your power supply can deliver).

    If you want to get out 30A you might want to try these modifications:

    1. Simply choose different FETs which are capable of handling 30A, preferable with a low on-resistance (will result in less heat).

    2. For an easy solution you might want to decrease R1 and R2 to 1k. This will increase the "no load" power consumtion from 14mW to 140mW but the faster switching speed should have a much higher impact. A better attempt is a "push-pull" unit made auf two small transistors and a resistor.

    3. What you need is a "deadtime generator" which ensures that the first mosfet is comletely switched off before turning the second on. However these things aren't easy to build with a few parts, but there are ICs out there for just that job.

    I've attached a simluation with the improved circuit. The programm didn't offer the parts you've chosen so I used simliar instead. All availabe optocoupplers resulted in poor results, so I replaced it with a simple transistor. It should be replaceable by your optocoupler whatsover since it's speed is above average. The 3 1ohm resistors on the left act as a dummy load.

    The diagramm shows the current flowing through the FETs (red: lowside/ N-channel; green: highside/ P-channel). You can see very nicely that the switching is done within 500ns. However shot-throughs still happen as my circuit doesn't include a deadtime generator. The spikes are as high as 20A! I would use this design for anything which requires reliability, but it performs waaaay better than yours. Adding the push pull unit will cost you just a few cents and shows a great performance so you might want to consider adding it into your design.

    member.eletro18 MOTOR-DRIVER-30Amp 01.png
    5 replies

    Reply 4 years ago on Introduction

    [ x ] Arduino/ Code [ none ] High current/ power [ x ] Ohms Law [ x] Tansistor (and its various functions) [ ] FETs time spend on electronics (aprx.) [ ] 10h+ [ ] 30h+ [ x ] 100h+

    I am basically more of a maker/software kinda guy with not much formal knowledge on electronics. :/
    But i do try a lot though :)


    Reply 4 years ago on Introduction

    That's a great starting point and way more than I expected. :D Don't worry, the rest isn't nearly as complicated as it seems. :)

    I just typed like half a page before I accidently reloded this page, but its gettin' late, so please don't mind that I won't re-type that.

    I assume you are able to write code which does what you want, and that "timers" and "PWM" is a familiar topic to you. So you probably want to know what the circuit does with your signals and what kind of signals you have to send in first place, right? (The more specific you question is, the better I can help ;) )


    Reply 4 years ago on Introduction

    Could you please give a more newbie friendly explanation of the circuit you suggest?


    Reply 4 years ago on Introduction

    Sure, I'll help whereever I can. But you have to specify your question.

    If you're just confused about my circuit it would also help to describe you're state of knowledge (just tick the boxes of topics you know something about/ have worked with, like [ x ] ):

    [   ] Arduino/ Code
    [   ] High current/ power
    [   ] Ohms Law
    [   ] Tansistor (and its various functions)
    [   ] FETs

    time spend on electronics (aprx.)
    [   ] 10h+ [   ] 30h+ [   ] 100h+


    Reply 5 years ago on Introduction

    Thanks for pointing it out ! I'll be sure to edit my instructable and also make a new driver based on your points + give you the credits for devoting your time to improve my design. Thanks again ! :)


    Reply 4 years ago on Introduction

    The diode has to be connected from the circuit's ground to the ground pin on the headers.

    P.S: I do not recommend you to make this particular driver currently ( until I revise the design ) due to the inefficiency and some major flaws. Rather I'd recommend you to use L293D or L298 ( as per the requirement of your motors )


    Reply 4 years ago on Introduction

    i use 150 rpm 12v motor for the gesture controlled rover project. can i use L293D or L298


    Reply 4 years ago on Introduction

    Will there be much change in rover code if i use L298. The driver can control 2 motors. So I am confused about connections and code . Can you please help. I am making it for my final project , in fact making a robot for the first time. Can you give me the details about the necessary changes.


    Reply 4 years ago on Introduction

    You just have to imagine the L298 as a combination of two such drivers. The code will remain same just the circuit will have slight modifications. Just google "L298 and arduino".