Can I use a transistor and a relay in conjunction to control the speed and directional rotation of a brushed motor?

The title says it all. I'm working on a project that requires me to power a brushed DC motor that can reverse directions and change speeds. Everything is controlled by Arduino, but an external battery powers the motor. The Arduino steps in between in order to control power flowing to the motor. I'm new to electronics and this is my first project, so I'm hoping for some guidance from the EE community here.

Is my approach of using a MOSFET to control the speed of the motor and a relay (since it can reverse voltage) to control the direction a reasonable one?

How would this look in a circuit diagram if it could work at all?

I hope this is sufficient information, but if you need more details, please most a comment and I will elaborate. If you have any other approaches you'd like to share, please do.

Edit: The suggested duplicate "question" doesn't help me or answer my question because I don't see a question and I don't see how the answers address every part of the question I'm asking here. My main question specifically asks if I can use a transistor and a relay in the same circuit to control the direction and speed of a motor. I'd also like to know how I could implement this by seeing a circuit diagram.

Yes, you can use a relay for direction reversing of a brushed DC motor. It would use a DPDT relay as shown in the diagram below. And yes, at the same time you can use an N-Channel MOSFET transistor to control the speed of the motor by driving the MOSFET with a high speed PWM signal. The duty cycle of the PWM would control the motor speed.

With the proper selection of MOSFET you would be able to drive the MOSFET from the PWM output from your Arduino. The direction relay coil is shown as using the same voltage as that used to power the motor. If the relay coil was a different voltage it could be connected to a separate voltage rail.

• Thank you, Michael! Exactly what I was looking for. I'll probably end up using an H-bridge like Golaž suggested, but you're answer helped me understand more about relays, transistors, and circuit design.
– user88062
Oct 15, 2015 at 18:28

You can. Like Michael Karas suggested. But more common way is to use full bridge or special motor driving IC, which in turn includes that bridge. That will work smoother than relay, and will remain more reliable and silent than the relay.

Since, your in school, it would be more beneficial to use an H-bridge, they are easy to control with a microcontroller and I think you learn more than just buying a motor driver. This one takes two signals from an Uno.

Signal Definitions

1. A_C5V_L: This is signal generated by the controller, the motor object writes this signal.
2. B_C5V_L: This is signal generated by the controller, the motor object writes this signal.
3. 12V or the variable voltage: Is generated from the power board and can be varied using a screw driver
4. GND is grounded to the power board Reference table which describes operation of circuit

Speed Control (Pulse Width Modulation): In addition, to applying the constant variable voltage generated by the switching regulator in the power board, if one applies a square wave to A_C5V_L or B_C5V_L the voltage that the armature of the motor sees will effectively be lower. Where the voltage is approximately: V = (Variable Voltage) x (duty cycle %) /100. Hence, this is how the open loop speed control of the motor functions.

Below is a possible PCB board design:

Print Circuit Board Manufacture was used for 2 reasons:

1. Print Circuit Boards are light in comparison to breadboards. Using PCB boards satisfies the weight design constraint
2. Print Circuit Boards eliminate the need for hundreds of wires and reduce fabrication time by automating the process

Obviously, you would need to refit these to your own application.