How to Make a DC Motor Speed Controller 50v, 15A

Hello everyone! this is a 50V, 15A DC motor speed controller tutorial. And it is the most complete circuit of a DC motor speed controller you will find on the Internet.


DC Motor Speed Controller Video:

1.  Specifications of the DC Motor Speed Controller:


1. This speed controller takes input voltage anywhere between 6v to 50v.

2. MAX. output current is 15A with the use of a proper heatsink,

3. Have gate overvoltage protection and

4. Protection against the flyback or voltage spikes.

Apart from this, this circuit can be easily used with an Arduino or similar microcontroller board if you don’t want to wrap your head around capacitors, resistors, and wires. 

After connecting the required voltage input and motor to the output terminal, the speed of the motor is increased or decreased using a potentiometer.



2.  Simplifying the DC Motor Speed Controller Circuit


At first, this circuit may seem very complicated, so let’s simplify it. This circuit is divided into three main parts:


1) Voltage regulator or step down converter

2) PWM generator.

3) Switching circuit.

Now let’s understand each part one by one.

For the sake of better understanding I am going through the switching circuit first:




Switching Circuit of Dc Motor Speed Controller
Switching Circuit of Dc Motor Speed Controller


The switching circuit as the name itself suggest is used to switch the output ON and OFF but at a very high frequency. Here, a Mosfet is used to do the job. Mosfet can switch the high output voltage connected between its drain and source if a threshold voltage is applied at its gate. This threshold voltage is generally very less than the voltage, Mosfet is capable of switching or the voltage between its drain and source. Also as the voltage at the gate of the Mosfet is increased beyond its gate threshold voltage, more and more current flows through Drain to Source.

A word of caution here: The Threshold voltage is the voltage where the MOSFET starts to conduct a little bit. To make the MOSFET conduct enough to drive a significant load it needs some additional voltage also.

This way if a DC motor is connected between gate and source of the MOSFET, voltage across it and thus speed can be controlled by controlling the gate voltage. And to do so we need a variable voltage at the Gate.




PWM Generator Circuit of Dc Motor Speed Controller
PWM Generator Circuit of Dc Motor Speed Controller


Now here comes the PWM generator to the rescue. This variable voltage can be easily supplied by using a PWM voltage. PWM or pulse width modulation is a type of technique used to get any voltage between 0 and maximum of the input voltage. This is achieved by switching the input voltage at a certain frequency and a certain duty cycle.

Suppose we have an input voltage of 5v. It can either be 5v or 0. Now if it is switched on and off with very high frequency, we get a square waveform. Let’s say ON time is 50 % of the total time. This 50% is called the duty cycle of the PWM wave which gives us the final voltage of 2.5volts. As this ON time or duty cycle increases, the overall voltage increases. And when duty cycle reaches 100% we get 5volts output. Similarly, when it is at 0%, we get 0volts output. This is called PULSE WIDTH MODULATION as we are modulating the width of the pulse to get variable voltage.

Read more about PWM here: PWM in Detail


A PWM Waveform
A PWM Waveform


The speed controller here generates the PWM wave by using a 555 timer IC. This IC provides the required variable voltage at the gate of the MOSFET by working in its astable mode. Now there is a certain input voltage limit of the IC which is surely less than the voltage limit of this speed controller. Hence to provide suitable working voltage to 555 timer IC, a voltage regulator circuit is used which provides fixed voltage to the IC. LM317 voltage regulator is used in this circuit for this purpose.




Voltage Regulator Circuit of Dc Motor Speed Controller
Voltage Regulator Circuit of Dc Motor Speed Controller


The voltage regulator used here is LM317. It provides a variable voltage between 1.25v to 37 volts. It is used here due to its several advantages over other voltage regulators such as Programmable output voltage, High output current, better line, and load regulation.

Read more about Voltage Regulators here: Voltage Regulators in detail


3. Circuit Diagram Of DC Motor Speed Controller


DC motor speed controller circuit diagram
DC Motor Speed Controller Circuit Diagram


Let’s look at the circuit in more detail along with all the components you need to build this speed controller :

I am using a bench power supply to power the circuit. And setting the voltage around 12V as an input voltage for the speed controller. I am using the oscilloscope to analyze the waveforms.


4. Componenets Required:


  •  LM317 Voltage Regulator
  •  555 timer
  •  IRF3205S n-channel Mosfet
  •  330 uF capacitor(63V)
  •  220 uF capacitor(63V)
  • 47 uF capacitor(63V)
  •  10nF ceramic capacitors X 3
  •  1k resistors X 2
  •  330-ohm resistor
  • 6.2 Kohm resistor
  • 100-ohm resistor
  •  1n4007 diodes X 3
  •  16 A Schottky diode 
  •  100k potentiometer
  •  33-ohm Resistor
  •  10V Zener Diode


5. How the Speed Controller works


5.1  A 330 uF capacitor is connected across the input power terminals to smooth out the DC. Followed by a 330-ohm resistor in series with 47uF capacitor forming a Low pass filter, which then powers the LM317 voltage Regulator. This voltage regulator is programmed using two resistors(R3 and R2) to give a constant voltage of 9volts. It’s worth mentioning that, to produce 9v output however, dropout voltage must be greater than 2.5 volts or input voltage must be at least 11.5 volts. To get voltage output other than this you have to change these resistors value according to the frequency formula mentioned in the datasheet.

VO = VREF (1 + R2 / R1) + (IADJ × R2) 


Download LM317 datasheet from here: LM317 datasheet


Here R2 is 6.2k and R1 is 1k.  Since Iadj. is in the range of uA, just ignore it here. This gives us an output voltage of 9Volts. This 9volts  then powers the 555 timer. Here, we are using 555 timer in its astable mode which simply means as a PWM generator.


PWM Voltage generated by 555 timer
PWM Voltage generated by the 555 timer


5.2  1 pin of the IC is grounded. 2 and 6 are connected together, likewise 4 and 8. The 220 uF capacitor smooths out the incoming 9volts. Now, 1K resistor, 2 1N4007 diodes, 100k potentiometer, and 10nF capacitor forms an RC charging-discharging circuit causing a PWM output at the third pin of the 555 timer.  This PWM output controls the Gate of the Mosfet. If you want to know more about 555 timers and how they generate PWM wave then I suggest you to go through the tons of excellent articles available online.

Read more about 555 timers here: 555 Timer in detail

Some 555 timer projects with in-depth explanation: 555 Timer projects

RC charging-Discharging Circuit
RC charging-Discharging Circuit



5.3  The most important aspect of PWM wave is its frequency and here is the 555 timer frequency formula for the same. You can calculate the frequency of the PWM output by using online calculators also.

Frequency = 1.44 / (R1+2×R2) × C1 HZ


Download 555 timer datasheet from here: 555 timer datasheet

555 timer PWM frequency calculators: 555 timer frequency calculator

Placing the value of R1 (1kohm), Capacitance (around 7nF because of tolerance and other factors) and the potentiometer value which is approximately 91 Kohm in my case . This gives us a frequency of 1100Hz. Now, of course, this is not accurate due to several other factors that affect the circuit.  The actual frequency is 1.3khz which is almost constant for 0 to 100% duty cycle of PWM output.


5.4  This PWM output controls the Gate of the Mosfet connected through a 33-ohm resistor. IRF3205S can handle current up to 110 Ampere with a proper cooling system and enough gate voltage. The voltage limit between Drain and Source is 55v maximum. whereas, Gate to source voltage is 20v maximum.

Source of the MOSFET is grounded and Drain is connected to one terminal of the output whereas the other terminal to 12v. This way the motor is connected between +ve of the 12v supply and Drain of the MOSFET. Now to protect the MOSFET from voltage spikes caused by the motor, a Schottky diode is connected across the motor or between Drain and +ve of the 12v supply.

Read more about Flyback Diodes here: Flyback Diode basics


5.5  Schottky diodes are generally preferred in flyback diode applications because they have the lowest forward drop (~0.2 V rather than >0.7 V for low currents) and are able to quickly respond to reverse bias (when the inductor is being re-energized) or in other words, Schottky diode have effectively instant reverse recovery time, hence suitable for high-frequency applications. 


6. DC Motor Speed Controller in Action


DC Motor Speed Controller in Actiion
DC Motor Speed Controller in Action


The potentiometer controls the speed of the motor. And the PWM waveform generated by the 555 timer is drawn on the oscilloscope. Measurements like duty cycle and Vpk-pk can also be measured.


7. Important points of the DC Motor Speed Controller


7.1 For overvoltage protection, use a Zener diode between Gate and source of the Mosfet as specified in the schematic.

7.2 The Motor I am controlling here is rated at 12v and takes up to 2A at maximum load which is not that big of a load. Hence 1khz PWM frequency is fine here but for big motors, the frequency must be above 15 khz.And To adjust PWM frequency, either change the potentiometer value or the capacitor to get the desired frequency output. So keep that in mind when using big loads.

Since this post is already too long, I thought why not cover the Arduino control part in another post. This way I can make tutorials more informative without worrying about the post length. 


Leave a Reply

Your email address will not be published. Required fields are marked *