MOSFET 'blocks' / computer shuts down

Hi everybody

I have been working the last 4 month on a controller for a solar steam production. Starting from scratch and not being an freak, a added up A LOT of frustration up to now.. :disappointed_relieved:

At this moment, many things work fine. I use a UNO to control several outputs and several inputs. As I am still debugging, the Arduino is usually 'fed' by my computers USB.

My big problem now is a 12V pump (700mA) which i control with a MOSFET (BUZ11). Its gate is connected to the Arduino's digital output via a 1k resistor and connected to GND via 100k. Its source is on GND and its drain is connected to the (-) side of the motor, the (+) side is on 12V.

What happens is that from time to time the MOSFET stays 'blocked' in the conducting position (motor pumping), even if the signal stopped. (It 'unblocks' after a few hours).

According to one friend, I added a diode between drain and GND to prevent the MOSFET from reverse voltage from the stopping motor. It didn't help.

According to a post in the forum, I added a diode between (+) and (-) side of the motor for the same reason. It didn't help.

Is the 100k resistor to big? What other ideas you have? It's quite annoying to have a pump which doesn't stop pumping water...

The second problem is that sometimes (usually when I plug a detector or anything to the system or even when I plug the USB cable to the Arduino) my computer shuts down. The only idea I have is that my Arduino pulls more current from the USB than allowed in these situations? Any other guess??

Thanks a lot, Michael in Mexico

Any other guess??


Your FET is not a logic level FET and so will need 10V to turn it on. With only 5V I suspect that it is over heating because it is not on hard enough. That is why it appears to be stuck on. You are miss reading the gate threshold voltage, this is the point where it just starts to turn on not when it is fully on.

I started with a MOSFET which says 15NHG, my friend said it was a logical one. I guessed it was dead so I changed it. The problem occurred the first time with this 15NHG. By the way: it doesn't heat a lot, I 'finger checked' it.

β€œIs the 100k resistor to big?”

where is this resistor going? can you post a drawing of your circuit. also, post your code.

define pumpport 11 //OUT motor pump

... pinMode(pumpport, OUTPUT); //OUT motor pump ... digitalWrite(pumpport, HIGH); // run pump

delay(pumptime); digitalWrite(pumpport, LOW); // stop pump


These are the relevant lines of code, I made a sketch of the relevant parts of the setup as it is right now (which is quite big). I have eagle files, but not up to date. This is my sketch (why the hell is everything complicated and unreliable as soon as it touches electronics? Why is there no 'upload picture' button like in any other website??? Sorry, I lost my patience, too much frustration).

Any ideas? Thanks!

Any ideas? Thanks!

Sure you need to use a mosfet designed to work with the Arduino's 5 volt logic output pins. The one you have will not work as you are using it.

Here is an example of a real 'logic level' mosfet:

Notice the difference is the threshold voltage values between it and the one you are trying to make work. That diode you have wired between the drain and source terminals is doing no harm, but also not doing anything useful. The 100k from gate to ground is also optional, but does serve a function of eventually turning off the motor if the arduino was powered off but the +12vdc pump voltage was still on.

Lastly I assume you have a common ground wire connected from the negative of the 12vdc power source wired to a Arduino ground pin, that is a requirement also.

So bottom line is that circuit will have to be redesigned with an additional bipolar switching transistor to apply or remove +12vdc to the gate of your mosfet as the Arduino +5vdc will not fully saturate the mosfet on.

I recommend you just get the proper MOSFET:


Thanks Lefty! How would the solution with the bipolar switching transistor look like? My problem is that I am in a small city in Mexico and most things more complicated than a 10k resistor can only be ordered in USA -> one week and a minimum order of 40$.. Maybe I can get the transistor, but not the logical MOSFET (I'll check tomorrow)...

Hi Lefty, hi everybody

I bought the logical MOSFET which took me a week. I've been doing trials every day and the result is: the problem is 80% resolved, the MOSFET usually does not block. BUT SOMETIMES IT DOES BLOCK! The logical signal is LOW, but the MOSFET stays connected (closed in relais language). The voltage for the pump can be up to 15V in my setup, it pulls 1 amp. Any more ideas why a MOSFET can block? (Check the sketch from a former post of mine). My frustration will turn into depression soon...

Thanks a lot, Michael

Hi everybody Just to inform you that I was hunting a phantom error... The real error was a short (which only ocurred sometimes) in the cables which connected the pumps GND to GND of another cable. As my MOSFET is cutting the GND side of the pumps power supply, this short 'fed' the pump directly without passing via the MOSFET.. the pump was on.. Thanks for your help and sorry for misleading you (and me), Michael

Thanks for reporting back it is a very useful thing to do.

It's so nice to know electronics still works like it always did. :D