Simple circuit control of high power element

Hi everyone!

I've been working on a project that involves a very simple potentiometer-based control of an external element that is powered by basically a laptop adapter, which would be in the range of 200W (around 20V and 10A). The basic idea is for me to use the Arduino to turn a transistor on and off, controlling the circuit. I have already made the program and know that it works as intended for a circuit consisting of a LED powered by 5V, but my first test for the full circuit was unsuccessful. For starters I now know that I need an actual high power transistor as opposed to the super small 2N2222 transistor I first tried using, which is why I'm thinking of using an IRFZ44N MOSFET. I am powering my Arduino through a wall USB charger with a mini USB cable.
I basically have two questions at this point:

  1. Would this transistor work for this use? I'm pretty sure that it should be able to be activated by the low power Arduino and that it can take the 20V-10A power I'm thinking of, but wanted to double check before I waste my money again on elements that don't work for my purposes.
  2. What do I need to consider for grounding my circuit? The current circuit I tried looks like this (see image below), but I understand that the transistor needs to somehow share the ground with the Arduino or it won't work. Is it as simple as making the negative side of the high-power circuit touch the ground on the Arduino? Or should I connect the ground of the Arduino directly to physical earth in the same way that the laptop charger has the third prong for physical earth? I would like to know what to do before trying something that will fry my Arduino...

Thanks so much for your help!

What you have drawn is a high side switch. This circuit would require a P channel MOSFET.

If you connect the + to your high power element, then use your IRFZ44N to - (GND) in a low side switch configuration.

1 Like

The curent in or out of pin 7 has no return.

Didn't even know there was a difference between high and low side switches, my transistor knowledge is basically non-existent as you might be noticing... This makes sense, so then basically what I have to do is:

Change the transistor from the + to the - side of the higher-power circuit.
Make sure that i connect the legs following a low side switch configuration.
Connect the - side of the high power circuit to the GND of the Arduino.

Is this correct?

Yes, plus look at the datasheet for the MOSFET and add an appropriate value gate resistor (pin 7, through the resistor, to the gate).

1 Like

In addition to this, you need to change to an IRLZ44 since the IRFZ44 will not saturate (turn on completely) with the 5V from an arduino pin and you'll let the magic smoke out.

Also, if you plan on controlling this load with PWM, a similar problem arises: arduino can't drive the IRLZ44 on/off fast enough to keep the smoke inside. So I'd recommend using a motor driver that can handle the current. Motor drivers solve all of these problems and are probably much better for beginners than using FETs.

1 Like

A MOSFET gate driver would probably be the better solution in this situation, as there's no need to change direction of the motor.

Motor drivers beefy enough to handle 20A probably have those integrated. For this ready integration it'd indeed be the easiest solution for beginners.

1 Like

I have a couple of these drivers. Haven't used them at very high currents, but they seem to work just fine with my linear actuators.

1 Like

The easiest solution would be a solid state relay. A relay is an electrically-operated and electrically isolated switch.

You'd need one that can be controlled by 5V and one that can switch 10A or more. (It's a good idea to get one that's over-rated, maybe one rated for 20A.)

A regular electro-mechanical relay will also work (for on/off control) but the Arduino can't directly power a relay coil so you need a driver circuit. ...It's similar to the problem you're facing now, but relay drivers can be lower voltage and just a few milliamps. You can get relay boards with a built-in driver.

Relays are isolated but you do need a ground on the coil-side (or input/control side of a solid state relay).

Or, here's a MOSFET motor driver circuit.. (It's a "low-side" controller, and yes it needs a common ground shared with the Arduino).

The problem with a high-side MOSFET driver is that requires a nearly-zero Gate-Source to turn OFF. Similarly, a regular bipolar transistor requires zero Base-Emitter voltage to turn off. With a 20V supply that means 20V, and for that you need at least another transistor.

1 Like

Thanks everyone for your comments, I really appreciate them! Since I don't really care about having a PWM or a high-speed turn on-and-off (really I won't be changing the current for any rate higher than ~10-100Hz), I am hoping that the IRLZ44 in the low side will be enough for what I need. I'll also add a diode for making sure there's no spurious current, and all the necessary resistors. Should get the components during the week and hopefully will get a chance to take a stab at the project next weekend, I'll upload the new circuit if it works. If it doesn't, it seems that maybe the easiest thing to do will be to get a motor driver, although I think and hope that the IRLZ44 will be a cheaper and sufficient solution for my needs.

Again, thanks everyone for your help!!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.