Relay Motor Speed Control

Hello All

I have been looking for a way to control a motor speed and direction.
I was thinking of using two relays for direction control and then 2 mosfets for the speed control.

I have attached a schematic of what I think to be a correct circuit for serving my purpose.
I did search google for "relay mosfet motor control" but nothing useful.

I would like to know if this is Plausible or Busted?

The mosfets are 50v, 22A, 0.038 ohm. Relays are 10A.

(I do also know about an H-Bridge.)

Looks good except for the FETs and one small thing with the relay wiring.

You are biasing the NMOSFETs incorrectly. Since they are n-channel, you control them using gate to source voltage, but here you are trying to control it using drain to gate voltage (this will never work for n-channel FETs). I am doing something similar with one of my own projects for an Arduino RC plane. Take a look at the circuit schematic attached. Notice I use two pulldown resistors and a separate power source (both will be necessary in your case as well).

As for the relays, switch the 12V and GND on one of them. This way you can control BOTH relays with only ONE Arduino digital signal. It will save you time and money.

All said, good shot on your first try!

Alright, thank you for your input. I do not have much experience with mosfets. The only reason I want to use them is cause my transistors can only go 1 amp (don't have higher rating) and i have a few mosfets lying around.

I will start testing this on my breadboard when I get home after my shift.

Thanks

Complicated circuit.
You could use two relays for direction, and one mosfet for speed.
http://forum.arduino.cc/index.php?topic=352403.15
The diagram in post#27 might help.
Leo..

Hi,
Wawas suggestion.


Tom... :slight_smile:

Thanks Tom.
C1, R4, R3 can be removed.
I added those parts to measure increased motor current draw at the endstops of the gate.
Leo..

Thank you Wawa...

That's a really nice circuit and it saves one pin.
I was going for opto couplers to isolate my motor supply from my arduino. I can just add a fast switching opto coupler between R1 and the mosfet right and then move R3 after the opto coupler.
The mosfets I have can take a 12 volt gate voltage. I don't have the data sheet right now or the part number.

it appears that what is not shown is the control for the relays.
having them wired so that when they flop, they alter the circuit to offer direction.

here is the drawing with the current monitoring removed and the second control wire shown.
if you use a relay board, with on-board opto, you can wire direct, a resistor may be needed, and the grounds need to be connected.

if you use your own relay, then add your opto for isolation.

as a note, I changed the connection for the lower relay.

dave-in-nj:
it appears that what is not shown is the control for the relays.
having them wired so that when they flop, they alter the circuit to offer direction.

here is the drawing with the current monitoring removed and the second control wire shown.
if you use a relay board, with on-board opto, you can wire direct, a resistor may be needed, and the grounds need to be connected.

if you use your own relay, then add your opto for isolation.

as a note, I changed the connection for the lower relay.

Thanks
I will be controlling the relays individually so that I can brake the motor. The place where the mosfet is located will not give me braking control. Come to think of it, Not even my original circuit has braking control.

Power_Broker:
Looks good except for the FETs and one small thing with the relay wiring.

You are biasing the NMOSFETs incorrectly.

I have been some searching and found what you talking about. So I changed my circuit design.
I have already connected this fully on my bread board. it works just as expected except for the braking. It'a either full brake or no brake. At least I have speed and direction control.

EDIT - i have removed the picture that was here to avoid confusion for any one else ever searching this type of thing. All pictures in Google image search is not always correct.

That's one crooked way of drawing a diagram.

You realise that your mosfet is "normally on"?

10k gate resistor is quite high.
That could affect switching speed (hot mosfet when using PWM).
Depending on motor size/current.
Use ~1k if it's a problem.
The function of R2 in my diagram is bleed, not gate drive.

The mosfet won't live long without a back-EMF diode across the motor.
Leo..

Hi,
Your MOSFET if you are using it for PWM, it is also going to PWM the relay coils.

The gnd of the coils should be connected directly to the battery neg.

Tom...... :slight_smile:

Yes. And the relay coils also need kickback diodes.
Leo..

You don't necessarily need two relays. You can also do it with only one SS transistor, one relay and one MOSFET for PWM, using a DPDT relay.

DC Polarity Reversal  Speed Control.JPG

Component values might need to be adjusted to suit your application. This is a diagram that I used for something else a while ago, with the MOSFET just added for speed control.

Edit: I just noticed that you want braking. Missed it earlier. This circuit won't do that, but I'll leave it now that it's posted. Might be of use to someone else reading this thread in the future.

Wawa:
That's one crooked way of drawing a diagram.
The function of R2 in my diagram is bleed, not gate drive.
The mosfet won't live long without a back-EMF diode across the motor.
Leo..

You are right, it's not perfect. What do you mean by R2 being there for bleed? I missed the diodes in the diagram,but did add them on my breadboard.
My mosfet is getting hot under PWM. Will change the resistor to 1K.
Thanks

[/quote]

TomGeorge:
Hi,
Your MOSFET if you are using it for PWM, it is also going to PWM the relay coils.
The gnd of the coils should be connected directly to the battery neg.
Tom...... :slight_smile:

Yes, I see that now. Diagram is wrong again. This is tough. On my breadboard I did wire it correctly.

I have attached the fritzing file for edit by someone with more experience in circuit drawing.

relay speed control.zip (12.6 KB)