I have the following set-up:

enter image description here

also note that:

  • when the motor is running, the voltage on the motor (between source of transistor and gnd) is at around 6V, but it gradually increases. my worry is that it will eventually go over 9V, which is the limit of the motor - and burn it.
  • the output of the op amp (6 of U3 going to gate) is steady, occasionally fluctuating by 0.01V
  • the 12V source is actually a bit over 12, let's say 12.6V
  • to simulate the microcontroller output I've used a L7805 voltage regulator to drop the 12V to 5V (i.e. I plan to control this by a digital signal - preferably non-PWM from a microcontroller - probably 5V output, but 3V3 is also an option)
  • the motor is http://www.ebay.com/itm/RS-360SH-Pumping-motor-Water-spray-motor-DC-3v-9V-for-water-dispenser-/280928002008 (sorry, but I wasn't able to locate information regarding torque, power consumption in different phases, etc.)

so, any idea why the voltage is gradually increasing on the motor? besides this, any other suggestions on how to improve the circuit? furthermore, if I place this setup in parallel twice (i.e. to control two of the same motors with different MCU signals) do you see any other limitation? (note that the source is rated at 12V 5A DC)

EDIT: please note that the resistor between pin 2 of the op-amp and ground is actually 22K

LATER EDIT: as suggested, I tried changing the feedback signal from OPAMP output (aka MOSFET gate) to MOSFET source. This didn't work (not even with resistors to change the value for the feedback) as the response of the motor was not constant, but rather fluctuating (almost stopping, then starting, the stopping, then etc.). I also tried placing the motor between the 12V input and the drain of the MOSFET. This seemed to keep the motor speed constant without the MOSFET heating up, but I was worried that 12V might affect the motor, so I reduced the 12V to 8V using an LM7808, resulting in 7.5V on the motor. This is a solution that keeps the motor running with constant speed, the MOSFET doesn't heat, but, of course, the LM7808 heats up so much that after some time the motor will stop (but after it cools down it works again). I guess that in this case, the only solution would be heatsinking the LM7808 and probably using a PWM signal with fill factor less than 100%. Please confirm this and, in case there is any, tell me how I could further improve this issue (considering that I might not use a PWM signal, but rather that 5V continuous). Thank you.

  • \$\begingroup\$ So what is it exactly that you are trying to do? Best that i can tell, you want to turn a motor on/off with an MCU and also not over-stress the motor. Is that correct? \$\endgroup\$
    – user3624
    Commented Jul 25, 2013 at 19:10
  • \$\begingroup\$ How much have you seen the voltage increase? And how long did it take to ramp up that far? Also, how is your MOSFET mounted and have you attached a heatsink to it? \$\endgroup\$
    – The Photon
    Commented Jul 25, 2013 at 19:26
  • \$\begingroup\$ David Kessner - correct \$\endgroup\$ Commented Jul 25, 2013 at 19:44
  • \$\begingroup\$ I didn't let it go above 7.5V, for safety's sake. But the increase from 6V to 7.5V takes about 10-15 seconds (roughly) \$\endgroup\$ Commented Jul 25, 2013 at 19:45
  • \$\begingroup\$ ok, I just checked it, it seems to increase by 1V in abou 30, maybe 40 seconds \$\endgroup\$ Commented Jul 25, 2013 at 19:49

5 Answers 5


So, to take another tack to your circuit: You're using the wrong component. To drive the gate of a MOSFET, you typically want a MOSFET driver. An IR2301 or IR2181 or similar would be a fine choice. This kind of driver can take logic level input for on/off, and can dump a lot of current at high voltage into the MOSFET gate, to make sure to drive it fully on or fully off.

With the IR2x series of drivers, if your PWM duty cycle is less than 100%, you can also use them to boost the gate voltage for a high-side N-channel switcher, if you'd prefer that to the low side.


I suspect what's happening is that the behavior of your MOSFET is changing as it heats up.

See these characteristic curves from the IRF1404 datasheet:

enter image description here

I'll just guess, as an example, that your motor operating current is about 10 A. When you first turn it on, Q3 is acting as a source follower, and the drop Vgs is about 4.5 V. After a while, the FET heats up, and the Vgs required to maintain 10 A through the motor drops a bit...If the FET junction temperature increased to 175 C, we'd now be off the published curve, but we can imagine that the Vgs would drop to 4.0 V or even lower. So the voltage across the motor would have increased by 0.5 V or so.


A couple of other things to look out for:

  • Your FET seems to be designed for operation around 100 A (based on what they give typical curves for in the datasheet). You are using it somewhere below 5 A (since that is the rating of your power supply). The characteristics of this op-amp might not be very well controlled at this "very low" current level.

  • Your FET is burning somewhere in the neighborhood of Vds * Id = 3.5 * 5 = 15 W of power. In a TO-220 package with no heatsinking the FET is probably heating up considerably. The FET is rated for 100 A operation, but is probably intended to be used with low duty cycle pulses.

  • The uA741 is not a rail-to-rail op-amp. The reason you're seeing 9.5 V at the FET's gate instead of 10 V is probably because you've driven the op-amp to saturation. If the op-amp is heating up during operation, the saturation voltage could be changing, and this would also contribute to drift in the FET's source voltage.

  • \$\begingroup\$ I hear what you say but the source should not rise above the gate of the FET is switched-off. \$\endgroup\$
    – Andy aka
    Commented Jul 25, 2013 at 19:35
  • 1
    \$\begingroup\$ note that the voltage on the gate (output from the op-amp) is around 9.5V, not 4.5V \$\endgroup\$ Commented Jul 25, 2013 at 19:51
  • \$\begingroup\$ on the other hand, indeed, the transistor heats up very fast. I usually test it 20-30 seconds at a time and in that time it goes from room temperature to a temperature which could blister my finger if I touch the metallic part on the back \$\endgroup\$ Commented Jul 25, 2013 at 19:52
  • \$\begingroup\$ @Andyaka, his op-amp circuit has gain of about 1.5, so the FET gate voltage is nominally 7.3 V. \$\endgroup\$
    – The Photon
    Commented Jul 25, 2013 at 20:42
  • \$\begingroup\$ could you suggest an op amp and MOSFET/transistor to accommodate the requirements? I want to drive that motor using a 5V microcontroller output (or alternatively a 3V3 output), preferably continuous (not PWM - unless really needed) - and using the same source of 12V (actually about 12.6V) 5A DC which will also power the microcontroller by regulating to 5V using one of those 7805 (?). and of course, as little head dissipated as possible. help greatly appreciated \$\endgroup\$ Commented Jul 25, 2013 at 20:55

EDIT I misread the circuit (seeing a gain of unity) so now that my eyesight/brain is cleared up (D'oh) I'll just make the recommendation about the feedback loop being changed: -

A better circuit to maintain 5V at the motor, is to take the feedback node for the op-amp right at the FET's source instead of the op-amp's output. This will then ensure that the source gets 5V and Vgs(threshold) is then countered by the op-amp output rising to overcome it. No need to have R3, and R4 can be short circuited. This will maintain 5V at the source of the FET.

Thanks to @ThePhoton and the OP for pointing out my visual/cerebral ineptitude. Reading further comments it's likely that to reduce power dissipation, PWM of some sort maybe required.

  • 1
    \$\begingroup\$ the output from the op-amp is around 9.5V \$\endgroup\$ Commented Jul 25, 2013 at 19:55
  • \$\begingroup\$ placed an 100uF electrolytic capacitor on the motor connectors - the situation is the same, the voltage increases. Therefore I guess it is a matter of MOSFET properties changing due to temperature variation \$\endgroup\$ Commented Jul 25, 2013 at 20:15
  • \$\begingroup\$ @BogdanSorlea yes you are probably right and so is The Photon. I'll rephrase my answer with the feedback recommendation. \$\endgroup\$
    – Andy aka
    Commented Jul 25, 2013 at 21:05
  • \$\begingroup\$ thanks for the edit, I think I got it. However, I want a small improvement to this, i.e. let's say I would want to drive the motor with 7.5V (i.e. source at 7.5V) - what changes would I have to do to the feedback loop then? I guess a voltage divider wouldn't help - so I am not really sure how to do this. \$\endgroup\$ Commented Jul 25, 2013 at 21:41
  • \$\begingroup\$ @BogdanSorlea if you want a "controlled" 7.5V on the motor then the right side of R4 should be connected to the FET's source but R4 value needs to change. At the moment if it was connected where I suggest it would maintain 10V on the source so R4 needs to be smaller, basically (1 + R4/R3)*5V = 7.5V or op-amp gain wants to be 1.25 - this means R4 needs to be 2k5 if R3 is 10k. Hope I've got my math right after my earlier mess!!! \$\endgroup\$
    – Andy aka
    Commented Jul 25, 2013 at 22:22

How are you measuring the voltage? With a voltage meter? Remember that motors are intermittent current sinks, and thus the average voltage a multimeter sees is different from actual, instantaneous voltage. If you look at the voltage on an oscilloscope, you may see what's really going on.

My guess is that you're seeing the voltage rise because the motor conduction period changes as the motor speeds up.

Finally, it's not the voltage that kills a motor, but the current. If you can keep the current limited, you can push lots of volts into a motor without overheating it, and getting somewhat faster response/better torque curve, although the top torque will still be the same, because that's determined by constant-conduction resistance.

You may also want to reduce back EMF by adding a diode and a small capacitor across the motor.

If you have a microcontroller, you should drive the motor with PWM, which lets you control current based on the duty cycle of the PWM. If you absolutely cannot do this with the microcontroller, then perhaps drive the gate of the MOSFET with a 555 timer instead of an opamp. MOSFETs are not intended to provide a linear voltage regulation; they will easily overheat and die if you are not very careful when you use them in the linear region. MOSFETs are generally designed to turn fully-on and fully-off, PWM style.

Finally, it looks like you're using an N-channel MOSFET as a high side switch. For this to work well (to turn the MOSFET on completely) you need to provide higher voltage on the gate than the MOSFET sees on the source. When the load is below the source, the load will but the source up in voltage, and thus push up the required gate voltage. This creates a feedback loop where the MOSFET will stay in the linear conduction zone rather than being driven on/off. I'd put the motor above the MOSFET instead.

  • \$\begingroup\$ please see the "LATER EDIT" in the original text \$\endgroup\$ Commented Jul 29, 2013 at 21:08

Responding solely to the voltage regulator question added in the "LATER EDIT" of the question:

While a 78xx linear voltage regulator is perhaps the simplest to implement other than say 6 Silicon diodes, 1n4007 for instance, in series, in any such linear voltage drop approach, the surplus voltage times the current through the regulation mechanism translates into heat in Watts.

Instead, consider a DC-DC switching regulator (buck regulator) to regulate the voltage down to 7.5 or 8 volts, and the heat issue pretty much goes away. Typical buck regulator efficiency is anywhere from 80% to 95%.

Translation: Maximum heat generated is much lower than any linear regulation approach.

  • For this application, an inexpensive DC-DC adjustable regulator module from eBay such as this one ($1.32 including free international shipping) would serve the purpose. No heat sink needed.

  • If board space or PCB layout is an issue, a direct drop-in switching regulator replacement for the 78xx linear regulator would be an option. This 6.5 Volt 1.5 Amperes fixed voltage switching regulator ($10.73 + shipping) shows up in a cursory search. There would be others closer to the target voltage. Again, no heat sink needed.

  • Another option is the Texas Instruments PTN78000W buck regulator - perhaps more efficient than any of the other options above, hence with even less of a heat problem. You could try requesting a free sample to see if it serves your purpose.

  • \$\begingroup\$ The final set-up will consist of 6 such motors in parallel, controlled by separate signals. At any given time no more than 2 of the motors will be running. The input is a DC source rated at 12V 5A (measured voltage is 12.6V). First question would be: I assume that the 5V are enough for 2 of these motors in parallel (in case the initial peak is too high I can start the motors with a time offset between them). Do you happen to know if my assumption is correct? What if I place 3 of these motors in parallel? Also, assuming I use a DC-DC rated at 5A, will it burn if the motors draw more? \$\endgroup\$ Commented Jul 30, 2013 at 19:35
  • \$\begingroup\$ And if so (DC-DC regulator might burn), can I avoid that by heatsinking it? PS: Example of DC-DC regulator with 5A output rating. ebay.com/itm/… \$\endgroup\$ Commented Jul 30, 2013 at 19:36
  • \$\begingroup\$ @BogdanSorlea Typically DC-DC switching regulators have both thermal protection and overcurrent protection - at lesat most of the ones I'm looking at on eBay, and the TI one I mentioned. Also, you can find DC-DC regulators that do 5 Amperes or even higher - at a higher price than the 1.5 and 3 Ampere ones of course. Regarding your specific motors, you would have to refer to their datasheet to find out their maximum (stall current) load. At start-up a motor would momentarily draw approximately the stall current. If a regulator is rated for 5 Amperes, then 5 Amperes it is, heat sink or not. \$\endgroup\$ Commented Jul 30, 2013 at 19:46

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.