A circuit which enables a user to linearly control the speed of a connected motor by rotating an attached potentiometer is called a motor speed controller circuit.
5 easy to build speed controller circuits for DC motors are presented here, first one using MOSFET IRF540, second one using IC 555, the third concept with IC 4093, fourth design involves the IC 741, while the fifth design utilizes IC 556, featuring torque processing
Design#1: Mosfet based DC Motor Speed Controller
A very cool and easy DC motor speed controller circuit could be build using a just a single mosfet, a resistor, and a pot, as shown below:
Using a BJT Emitter Follower
As can be seen the mosfet is rigged as a source follower or a common drain mode, to learn more about this configuration you may refer to this post, which discusses a BJT version, nevertheless the working principle remains the same.
In the above DC motor controller design, the pot adjustment creates a varying potential difference across the gate of the mosfet, and the source pin of the mosfet simply follows the value of this potential difference and adjusts the voltage across the motor accordingly.
It implies that the source will be always 4 or 5V lagging behind the gate voltage and vary up/down with this difference, presenting a varying voltage between 2V and 7V across the motor.
When the gate voltage is around 7V, the source pin will supply the minimum 2V to the motor causing a very slow spin on the motor, and 7V will be available across the source pin when the pot adjustment generates the full 12V across the gate of the mosfet.
Here we can clearly see that the mosfet source pin seems to be "following" the gate and hence the name source follower.
This happens because the difference between the gate and the source pin of the mosfet must be always around 5V, in order to enable the mosfet to conduct optimally.
Anyway, the above configuration helps to enforce a smooth speed control on the motor, and the design could be built quite cheaply.
A BJT could be also used in place of the mosfet, and in fact a BJT would produce a higher control range of about 1V to 12V across the motor.
Video Demo
When it comes to controlling motor speed uniformly and efficiently, a PWM based controller becomes the ideal option, here I have explained more, regarding a simple circuit to implement this operation.
Also Read: High Voltage DC Motor Controller Circuit
Using MOSFET as a High Power Potentiometer
The next figure below shows a very simple DC motor speed controller circuit that employs a MOSFET as a high-power potentiometer (rheostat). The circuit is designed to work with 12 volt DC motors having a peak current usage of below 5 amp.
The mains AC supply is provided through the on/off switch S1 to the primary winding of the isolation and step-down transformer T1.
The push-pull rectifier circuit of D1 and D2 full-wave rectifies T1's output, and the resulting unfiltered DC output is smoothed to a certain extent by C1 to produce a relatively constant DC potential.
There can be a significant level of ripple on this DC output, however it is unimportant in this application. Tr1 provides power to the load and is biased through a resistive divider circuit consisting of R1, VR1, and R2.
The gate bias voltage provided to Tr1 might not be adequate to allow the MOSFET to conduct meaningfully with the wiper of VR1 at the R2 end of its rotation, and the motor will not operate.
Advancing the wiper of VR1 towards the opposite end of its rotation allows a constantly increasing bias to be supplied to Tr1, resulting in a steadily decreasing drain to source resistance.
Because of this, the power delivered to the motor rises in tandem with the motor's speed, until Tr1 reaches saturation (where the motor runs at its full speed).
VR1 may therefore be used to change the motor's speed from minimum to maximum speed.
C2 filters away any amount of mains hum or other electrical noise that could otherwise be picked up by Tr1's high impedance gate circuit, preventing the motor speed from being reduced to zero.
D3 is a safety diode that inhibits any excessive reverse voltage spikes that may occur as a result of the motor's excessively inductive load.
Design#2: PWM DC Motor Control with IC 555
The design of a simple motor speed controller using PWM may be understood as follows:
Initially when the circuit is powered, the trigger pin is in a logic low position since the capacitor C1 is not charged.
The above conditions initiates the oscillation cycle, making the output change to a logic high.
A high output now forces the capacitor to charge via D2.
On reaching a voltage level that's 2/3 of the supply, pin #6 which is the threshold of the IC triggers.
The moment pin #6 triggers, pin #3 and pin #7 reverts to logic low.
With pin #3 at low, C1 yet again begins discharging via D1, and when the voltage across C1 falls below the level that's 1/3 of the supply voltage, pin #3 and pin #7 again become high, causing the cycle to follow and go on repeating.
It is interesting to note that, C1 has two discretely set paths for the process of charging and discharging via the diodes D1, D2 and through the resistance arms set by the pot respectively.
It means the sum of the resistances encountered by C1 while charging and discharging remains the same no matter how the pot is set, therefore the wavelength of the out put pulse always remains the same.
However, since the charging or the discharging time periods depends upon the resistance value encountered in their paths, the pot discretely sets the these time periods as per the its adjustments.
Since the charge and discharge time periods is directly connected with the output duty cycle, it varies according to the adjustment of the pot, giving form to the intended varying PWM pulses at the output.
The average result of the mark/space ratio gives rise to the PWM output which in turn controls the DC speed of the motor.
The PWM pulses are fed to the gate of a mosfet which reacts and controls the connected motor current in response to the setting of the pot.
The current level through the motor decides it speed and thus implements the controlling effect via the pot.
The frequency of the output from the IC may be calculated with the formula:
F = 1.44(VR1*C1)
The mosfet can be selected as per the requirement or the load current.
The circuit diagram of the proposed DC motor speed controller can be seen below:
Prototype Image:
Video Testing Proof:
In the above video clip we can see how the IC 555 based design is used for controlling speed of a DC motor. As you may witness, although the bulb works perfectly in response to the PWMs and varies its intensity from minimum glow to maximum low, the motor does not.
The motor initially does not respond to the narrow PWMs, rather starts with a jerk after the PWMs are adjusted to significantly higher pulse widths.
This does not mean the circuit has problems, it is because the DC motor armature is held between a pair of magnets tightly.
To initiate a start the armature has to jump its rotation across the two poles of the magnet which cannot happen with a slow and gentle movement. It has to initiate with a thrust.
That's exactly why the motor initially requires a higher adjustments for the PWM and once the rotation is initiated the armature gains some kinetic energy and now achieving slower speed becomes feasible through narrower PWMs.
However still, getting the rotation to a barely moving slow status can be impossible because of the same reason as explained above.
I tried my best to improve the response and achieve a slowest possible PWM control by making a few modifications in the first diagram as shown below:
Having said this, the motor could show a better control at the slower levels if the motor is attached or strapped with a load through gears or pulley system.
This may happen because the load will act as a damper and help to provide a controlled movement during the slower speed adjustments.
Another Simple PWM DC Motor Controller Circuit
Design#3: DC Motor Controller with Multiple Features
The following DC motor controller circuit provides multiple control features such as:
- PWM Speed Control.
- Direct Speed Without PWM Speed Control (with slow Initialization).
- Forward/Reverse.
- Sudden Brake.
When Switch A is pressed, the PWM function kicks in and the motor speed can be regulated by moving the potentiometer P1.
Pressing Switch B ON or OFF causes the motor to change direction between anticlockwise and clockwise motions. Meaning this switch B can be used to enable reverse/forward motion on the motor.
Regardless of the Switch A position, if Switch C is pressed, causes the motor to attain a direct full speed. In this position the PWM function does not work.
If Switch A and Switch C are both open, then the motor will remain switched OFF.
Design#4: Using a Single Op amp
The op amp circuit described below can be used for regulating the speed and direction of a motor. It functions as a voltage follower, with its positive input (pin #3) linked to potentiometer R3, which functions as a dual-purpose controller for motor speed and direction.
At the mid-point of the potentiometer's range, the op amp output is close to zero, causing neither Q1 nor Q2 to conduct current.
Moving the potentiometer wiper towards the positive side will make the op amp output become positive, allowing Q1 to conduct current to the motor and increase its speed.
Adjusting the potentiometer towards the negative supply will cause the op amp output to swing to a negative voltage, resulting in Q2 turning on while Q1 is turned off. This action reverses the motor's rotation direction.
Depending on the rotation direction, the motor's speed increases as the potentiometer wiper is pulled towards either end of its range.
To determine the maximum acceptable DC voltage range for the selected motor, it may be necessary to monitor the voltage variation on the emitters of Q1 and Q2.
Design#5: Using IC 556 for Enhanced Speed Control
Varying a DC motor velocity may appear to be not so difficult and you may find plenty of circuits for it.
However these circuits do not guarantee consistent torque levels at lower motor speeds, making the functioning quite inefficient.
Moreover at very low speeds due to insufficient torque, the motor tends to stall.
Another serious drawback is that, there’s no motor reversal feature included with these circuits.
The proposed circuit is completely free from the above shortcomings and is able to generate and sustain high torque levels even at lowest possible speeds.
Circuit Operation
Before I have explained the proposed PWM motor controller circuit, we would also want to learn the simpler alternative which is not so efficient.
Nonetheless, it may be considered reasonably good as long as the load over the motor is not high, and as long as the speed is not reduced to minimum levels.
The figure shows how a single 556 IC can be employed for controlling speed of a connected motor, we won’t go into the details, the only notable drawback of this configuration is that the torque is directly proportional to the speed of the motor.
Coming back to the proposed high torque speed controller circuit design, here we have used two 555 ICs instead of one or rather a single IC 556 that contains two 555 ICs in one package.
Circuit Diagram
Main Features
Briefly the proposed DC motor controller includes the following interesting features:
Speed can be varied continuously right from zero to maximum, without stalling.
The torque is never affected by the speed levels and remains constant even at minimum speed levels.
The motor rotation can be flipped or reversed within a fraction of second.
The speed is variable in both the directions of the motor rotation.
The two 555 ICs are assigned with two separate functions. One sections is configures as an astable multivibrator generating 100 Hz square wave clocks which is fed to the preceding 555 section inside the package.
The above frequency is responsible for determining the frequency of the PWM.
The transistor BC 557 is used as a constant current source which keeps the adjoining capacitor at its collector arm charged.
This develops a saw-tooth voltage across the above capacitor, which is compared inside the 556 IC with the sample voltage applied externally over over the shown pin-out.
The sample voltage applies externally can be derived from a simple 0-12V variable voltage power supply circuit.
This varying voltage applied to the 556 IC is used to vary the PWM of the pulses at the output and which eventually is used for the speed regulation of the connected motor.
The switch S1 is used to instantly reverse the motor direction whenever required.
Parts List
- R1, R2, R6 = 1K,
- R3 = 150K,
- R4, R5 = 150 Ohms,
- R7, R8, R9, R10 = 470 Ohms,
- C1 = 0.1uF,
- C2, C3 = 0.01uF,
- C4 = 1uF/25VT1,
- T2 = TIP122,
- T3, T4 = TIP127
- T5 = BC557,
- T6, T7 = BC547,
- D1---D4 = 1N5408,
- Z1 = 4V7 400mW
- IC1 = 556,
- S1 = SPDT toggle switch
The above circuit was inspired from the following motor driver circuit which was published long back in elecktor electronic India magazine.
Controlling Motor Torque using IC 555
The first motor control diagram can be much simplified by using a DPDT switch for the motor reversal operation, and by using an emitter follower transistor for the speed control implementation, as shown below:
Improved Torque at Low Speed using CMOS PWM Control
Although the single MOSFET linear motor speed controller layouts explained at the beginning of the article includes the benefit of simplicity, but these may have a handful of down sides.
One of them is that there exists a significant level of dissipation in the MOSFET, specifically when the motor is tweaked for approximately 50 percent of the optimum speed.
This may be certainly not a serious issue however, and just requires the installing of a moderately large heatsink on the MOSFET.
A much more critical concern is that the motor is likely to stall as soon as this kind of linear controller is adjusted for any lower speeds.
This is because the MOSFET in this situation has a relatively high resistance, which offers the supply input with a significantly high output impedance.
When the load on the motor is increased, it attempts to draw excessive amounts of supply current, but this leads to a larger voltage drop across the transistor and a lower supply voltage across the motor.
As a result, the power delivered to the motor does not vary significantly, rather it decreases. Due to this, the motor has a propensity to stall.
Also, there is an opposite reaction in which lowering the load on the motor cuts its current drain, resulting in a greater supply voltage and a significant rise in motor speed.
Using a controller that provides a pulsed PWM signal to the motor, you may achieve much better motor speed management.
Improved Torque using CMOS PWM Speed Control
One method of implementing this, and the one employed here, is to have a circuit that provides a fixed output pulse duration while altering the frequency of the pulses to modify the motor speed. A low frequency produces long gaps between pulses and feeds a relatively low power to the motor.
When the frequency is increased, there are no noticeable gaps between the pulses, and the motor receives a nearly constant signal.
This results in a high average power in the motor, which runs at full speed.
The benefit of this system is that when the motor is being pulsed, it is essentially getting the full power during the ON periods of the pulses, and is free to consume a large supply current if the load on the motor actually demands it.
As a result, the motor is powered by a sequence of strong pulses that defy stalling and provide improved torque even at reduced speeds.
The following figure depicts the circuit diagram of a pulsed DC motor speed control. Here, T1, D1, D2, and C1 derive a sufficient DC supply from the mains AC supply.
Tr1 is hooked up in series with the motor, but its gate terminal receives the output signal from an astable multivibrator circuit.
This pwm circuit is built using two of the four gates of a CMOS 4001 device, which are utilized in a CMOS astable setup that is quite a conventional design.
A couple of timing resistors can be seen connected between the output of gate 1 and the junction of R1 and C2, which differs from the conventional PWM design.
VR1 and R2 are the two resistors, along with guiding diodes D3 and D4 connected in series with the output of NAND gate 1.
The two diodes ensure that R2 works like the timing resistance whenever the astable's output is high, and VR1 functions as the timing resistance whenever the output is low.
The period of the output pulses is constant since R2 has a predetermined value. The interval between them could be changed by varying VR1.
This will be nearly zero when it is adjusted for lowest resistance. The output mark space ratio is greater than ten to one at maximum resistance.
VR1, therefore, could be adjusted to generate the desired motor speed with effective torque, with the lowest speed happening at full resistance and the highest speed occurring at zero resistance.
Precision Motor Control using a Single Op Amp
An extremely refined or intricate control of a d.c. motor could be achieved making use of an op-amp and a tacho-generator.
The op-amp is rigged as a voltage sensitive switch. In the circuit demonstrated below, as soon as the output of the tacho-generator is lower than the preset reference voltage the switching transistor be turned ON and 100 % power will be provided to the motor.
Switching action of the op amp would happen in just a couple of millivolts around the reference voltage. You will need a dual power supply, which may be just zener stabilized.
This motor controller enables infinitely adjustable range without involving any form of mechanical hassles.
The op amp output is only +/- 10% of the supply rails level, thus employing a double emitter follower huge motor speeds could be controlled.
The reference voltage could be fixed through thermistors, or an LDR etc.
The experimental set up indicated in the circuit diagram made use of an RCA 3047A op amp, and a 0.25W 6V motor as tacho-generator which generated around 4V at 13000 r.p.m for the intended feedback.
Additional DC Motor Controller Designs:
PWM Motor Control using Only BJTs
The following circuit also uses PWM principle for the desired motor speed control, however, it does not depend on any integrated circuits or ICs, rather uses only ordinary BJTs for the implementation. I got this from an old magazine page.
Motor Control Circuits using LM3524
The IC LM3524 is a specialized PWM controller circuit which allows us to configure very useful and precision motor speed control circuits as I have explained below:
The above diagram shows a basic PWM motor control circuit using the IC LM3524. The design additionally incorporates a sensor based feedback control through the IC LM2907.
A small magnet is attached with the motor shaft, such that during the rotations, the magnet goes past closely to an iron core pickup coil transformer.
The mechanism, causes the rotating magnet to induce a sharp electrical pulse in the pickup coil, which is used by the LM2907 as a trigger input and appropriately processed as the feedback control pulse to the LM3524 IC.
The feedback system ensures that the speed of the once set can never deviate from the set point, providing a precise control of the speed. The pot at pin#2 of the LM3524 is used for controlling the speed of the motor.
Sensorless Control, Without Motor Back EMF
The next LM3525 PWM speed control design allows the feedback control without incorporating a complex tachometer mechanism, or cumbersome sensor arrangements as implemented in the previous design.
Here, the back EMF from the motor is utilized as the feedback signal and applied to the input of the IC LF198.
In case the speed tends to rise beyond the set level, the LF198 compares the rising EMF signal with the sample reference signal from the LM393 output.
The resulting output is sent to the error amplifier of the IC LM3524 for the necessary processing of the output PWM to the driver transistors.
The controlled PWM due to this sensor-less feedback through the back EMF ultimately enables the motor to remain precisely fixed at a correct speed, as adjusted by the pin#2 potentiometer.
Emmanuel says
Mr.Swagatam,
Good morning sir, it had been a long time ,I heard from you. Please I’m having difficulty with circuits for the control of 230 v DC motor speed control ( treadmill motor). Using LM 2917 with interrupters. Please where you able to simulate the circuit diagram before sending to me. And what value of interrupters do you used please I’m want to get results this weekend .
Swagatam says
Hello Emmanuel,
I do not use simulators, instead I use my own brain simulation and datasheet references.
You must check the circuit in a stage wise manner.
In the following diagram, please remove the opto-interrupter and the MOSFET, motor stage completely, and first confirm the working of the LM2917 using a 555 oscillator and an LED at the output.
https://www.homemade-circuits.com/wp-content/uploads/2024/08/treadmill-motor-constant-speed-schematic.jpg
Feed the 555 frequency to pin#1 of the LM2917 and adjust the 555 frequency until the output LED just illuminates, at the set frequency.
Emmanuel says
Good morning Mr.Swagatam, I’m here again. I was able to purchase the only available LM2917 with 14 pin assignment, but the configuration of the circuit diagram you gave me is LM2917 with 8 pins. How do I match up the connections with 14pins? Please help.
Swagatam says
Emmanuel, In my earlier comment I provided you with the datasheet link of the IC, so you have to open that datasheet and compare the 8 pin version with the 14 pin version, and check the names written beside the pin numbers and match the pins accordingly.
Let me know if you understood the procedure or not?
Emmanuel says
Thank you ,Mr. Swagatam , I’m unable to see 8 pin of LM2917. I was able to see 14pins of LM2917. Please how do connect the external components to each pins. Please guide me accordingly.
Swagatam says
Hi Emmanuel, for an 8 pin version please check the 8 pin diagram, it is shown on page 3 of the datasheet.
Or you can simply use my diagram and connect your IC as per the pinout configuration of the diagram:
https://www.homemade-circuits.com/wp-content/uploads/2024/08/treadmill-motor-constant-speed-schematic.jpg
Emmanuel says
Mr. Swagatam,
Yes, I will appreciate which ever design circuit that suit my project: treadmill motor constant speed controller, using LM 2917 and amp 741.
The specifications of the treadmill motor :power/voltage/current.
Thank you so much for time, energy and knowledge put together helping others . Remain blessed.
2Hp, /230vdc, /max 8A
Swagatam says
Thank you Emmanuel,
I think the IC 741 is also not needed, the LM2917 alone should be sufficient to keep a constant speed over the treadmill motor.
You can try the following design.
Please select the MOSFET as per the motor specifications, a 400V 20 amp MOSFET should be good enough.
https://www.homemade-circuits.com/wp-content/uploads/2024/08/treadmill-motor-constant-speed-circuit-diagram.jpg
Emmanuel says
Mr. Swagatam, I’m grateful to you for keeping to your promise.i can see a design built around only LM2917. Please any written note that explain how the circuit works and how to set precision motor speed constant.
You provide a condition formula when the motor would cut – off. Please explain the circuit to me so that I can replicate the same. Thank you sir.
Swagatam says
You are welcome Emmanuel,
According to my understanding of LM2917 IC, in the diagram the motor will be turned off whenever the frequency (Hz) of the motor rotation exceeds a certain threshold, which can be fixed by setting up the R, C components, using the following formula:
f = 1/2RC
So, as the mosfet and the motor are cut-off the frequency drops and this reverts the situation so that the motor again turns ON, and rotates until its frequency yet again tries to exceed the threshold, this ON/OFF process keeps repeating, maintaining a constant speed on the motor.
However make sure the value of C is not selected below 500pF.
Emmanuel says
Mr. Swagatam, thank you for clarification and your time. Well appreciated, I will tried it out and let you know the outcome. Thanks once again
Swagatam says
No problem Emmanuel, let me know if you have any practical issues with the design…
Swagatam says
Emmanuel, There’s a small error in the opto-interruptor configuration in the previous diagram. Please correct it according to the following updated diagram…
https://www.homemade-circuits.com/wp-content/uploads/2024/08/treadmill-motor-constant-speed-schematic.jpg
Emmanuel says
Mr. Swagatam, thank you for updated me on time ,which opto – interrupter should I use? I can use PC817? Pls guide me .
Swagatam says
Emmanuel, opto-interrupters are different from opto-couplers, here’s an example of an opto-interrupter:
https://www.homemade-circuits.com/wp-content/uploads/2019/09/optocoupler-speed-counter.jpg
Emmanuel says
Thank you Mr. Swagatam,
I want to let you know that the LM 2917 which I was able to get has 14 pin out legs ,how do I configured the wiring connections of the 8 pin-out of the same LM2917 on the 14 pin-out ?
I need your guidance pls
Swagatam says
Hi Emmanuel,
you will have to check and compare the names designated to the 8 pin version and the 14 pin version, and accordingly do the connections in my suggested circuit application.
You can refer to the following datasheet and check the two versions and compare, to match the pinout designations:
https://www.ti.com/lit/ds/symlink/lm2907-n.pdf?ts=1725853186701&ref_url=https%253A%252F%252Fsearch.brave.com%252F
For example pin#1 in the following diagram is designated as the TACH+, and this is the same for the two ICs, in this way you can go on comparing the other pinouts accordingly.
https://www.homemade-circuits.com/wp-content/uploads/2024/08/treadmill-motor-constant-speed-schematic.jpg
Emmanuel says
Wow! Nice post.
I’m interested in pwm DC motor speed control using lm3524 with a sensor based feedback using LM2907.
My question is , can this circuit be modify with opto coupler with the output 3524 to driver 230vdc treadmill motor while IR sensor is being used as feedback using the same ic Lm2907? Please I need your help for modification. Thank you in asvancw
Swagatam says
Thanks Emmanuel,
Yes, that’s possible. You can replace the magnetic pickup with an opto-interrupter and get the same results for your 220V tread mill motor. I can definitely help you with this…
Emmanuel says
Pls thank you for your responses can you help the modification circuit ,here is my email address: emmanuelebenehi12@gmail.com
Swagatam says
Sure, but you will require the IC LM2907 for this project, do you have this IC with you?
Emmanuel says
Thanks Mr. Swaganta,
I have equivalent of LM2907/ LM2917. Hope I can use it with with IR sensor in place magnetic pickup.
On the pwm control end LM3524, at the output in your diagram ,I will interface opto coupler to enable be control 220Vdc treadmill motor at precision ( constant speed).
Hope , I’m correct any corrections?
Swagatam says
Thank you Emmanuel,
Could you please tell me, which equivalent IC are you referring to, because the ICs LM2907/LM2917 are specifically suited and easier to configure with the suggested motor control circuit with the PWM IC LM3524…
Yes, your assumptions are correct.
Emmanuel says
Mr. Swagatam, Thank you for your commendation on my assumptions. The equivalent to LM 2907 is LM2917. Both are compatible , having the same characteristics.
Swagatam says
Thanks Emmanuel, I will design the circuit and let you know, once it is done…
Emmanuel says
Mr. Swagatam, thank you once for assuring me of modification of this very design . I will looking forward to received it excitement , thank you in advance .
Swagatam says
No problem Emmanuel,
Just wanted to share this information, I think your treadmill constant speed circuit can be designed by simply using LM2917 IC and an opamp 741, so the IC Lm3524 is not required.
Let me know if you still want the circuit to be configured usingLM3524?
luca says
Hi Mr. Svagatam.
With reference to the circuit with feedback control through the IC LM2907, is it possible to adapt an IR sensor (5v, with LM393) in the place of the magnetic pickup? Thanks in advance, Luca (IT)
Swagatam says
Hi Luca,
yes, that is possible.
Reginal says
Hi Sir
I have a small dc motor 3.5volts, I also have 2 pushbuttons switches, one switch is for the selection of speed and the other button is for on/off state.
1selection high speed, 2nd selection mid speed, 3rd selection slow speed, 4th selection pulse, 5fth selection manual.
i want to design a circuit with an IC.
Any options to do this.
Thanks in Advance
Swagatam says
Hi Reginal,
the mentioned operations are possible through a single push button, using the IC 4017.
Daniel says
Hello sir, please can I efficiently reduce 5hp 3500rpm to 750rpm speed using pwm circuit? Thanks
Swagatam says
Hello Daniel,
PWM cannot be used effectively for an AC motor, instead you can try the phase chopping method using a fan dimmer circuit to reduce RPM.
https://www.homemade-circuits.com/simple-ceiling-fan-regulator-circuit/
Daniel says
No it is DC 5hp motor
Swagatam says
In that case, you can try the following circuit, make sure to upgrade the mosfet according to the specifications of your motor…
https://www.homemade-circuits.com/wp-content/uploads/2022/05/DC-pwm-motor-control.jpg
Swagatam says
..also make sure to use separate +positive power lines for the motor and the circuit. use +12V for the circuit, and +240V for the motor. The ground of the two supplies must be connected in common.
Also remember to replace the diode with a 6A4 diode.
Andre says
Good day Swagatam esteemed and most helpful kind sir,
What are the chances of me using your DC speed controller to control a standard washing machine motor?
The motor is 240V AC, 750rpm 250W and 13500rpm 750W.
It appears to be a normal series connected universal motor with a speed transducer which I don’t need.
I want to use the high speed option to make a router for wood work.
Regards
Andre
Swagatam says
Thank you Andre, for your kind words.
Since your motor is a 240V AC motor, I would rather recommend you to use the concepts explained in the following article:
https://www.homemade-circuits.com/simple-ceiling-fan-regulator-circuit/
Let me know if you have any further doubts or questions.
Norman D Kelley says
Hi Swagatam, I and trying to design a motor reversing circuit that will be energized when daylight hits an LDR and will run for 2 seconds and then be off until it gets dark, which will cause the motor to be reversed and will run for 2 seconds. I was planning on using a lm358 dual op amp. The op amp would trigger BC548 NPN transistors which would ground the trigger of the C-005 delays to provide the 2 second run time. The C-005 would trigger PNP transistors to feed 5v to the relay coils to energize the relays one at a time (one at dark and the other at daylight).The relays would be wired to reverse the + and – to the motor. I am using a lm7805 to reduce the voltage from 12v to 5v. The NO contacts are connected together and connected to ground. The NC contacts are connected together and will receive power from the PNP transistors (one at dark and the other at daylight).The common contacts are each connected to the motor leads. The circuit is not working as planed. There is not enough power to energize the relays through the PNP transistors. I’ve thought about letting the PNP transistors turn on some added NPN transistors and use those to ground the relay coils. In other words, switch it around where the relays are powered and waiting for a ground. Do you have a similar circuit that might work, or would you be able to design such? Thanks!
Swagatam says
Hi Norman,
Which PNP transistor are you using, what is the coil resistance of the relay and how much current the PNP base is receiving? All these factors will be responsible for ensuring the relay switches optimally.
Alternatively you can connect the PNP BJT in Darlington mode to enhance its gain.
Please let me know how it goes.
luk says
Thanks for your answer; could you please indicate several equivalent of the PNP 2N5023? In Italy it seems unobtainable.
Swagatam says
No problem! You can use 2N2907 or 8550 or BD140 in place of 2N5023.
luk says
Last question: no ground for pin #8 of LM3524?
Swagatam says
Yes, pin#8 must be connected to ground, it is mistakenly not shown in the diagram…sorry about that.
luk says
Hello! Thanks for sharing your projects. I’m starting to learn a lot by reading your site. Regarding the 5.th speed control design (the one using the feedback fem signal), I have doubts with both the LF198 and LM393 connections. Could you please specify the connections using the eight pin numbers wich are reported in the datasheet? Thank you so much, waiting for your answer.
Swagatam says
Hello,
For LF198,
INPUT = Pin#3
SAMPLE = Pin#8
The pin that goes to a capacitor is pin#6
OUT = Pin#5
Pin#7 = ground
Pin#1 = +V
Pin#4 = -V
For LM393,
Input(-) = Pin#2
Input(+) = Pin#3
OUTPUT = Pin#1
Pin#8 = VCC
Pin#4 = GND
Brian says
DESIGN #5
assuming the PWM duty cycle is at 50% then during the high period TR2 and Tr3 will be on and during the low period T1&T4 will be on reversing the current through the motor, Therefore the ave current through the motor will be 0.
Therefore if the PWM duty is less than 50% the motor will reverse since T1& T4 will conduct for a longer period than T2&T4 and if the Duty is greater than 50% the motor direction will be forward as T2&T3 will conduct for a longer period than T1&T4.
Potential problem since for single direction operation the Full PWM duty canot be used
Swagatam says
You are right, that seems to be a serious flaw in design#5…
In that case design#3 appears to be a much better option.
Brian says
Thanks for your reply.
I like your PWM generation circuit using the dual 555 timers so for unipolar operation I will change the full bridge power circuit to a single mosfet as per your design #3.
The motor I have is 24v rated at 15A.
Can you suggest a suitable mosfet that can carry this current
Swagatam says
That sounds perfect!
For 24V 15A load, a !RF540N MOSFET should work fine!
https://www.homemade-circuits.com/wp-content/uploads/2013/01/irf540ndatasheet252Cpinouts.png
Sam says
HI could these circuits be implemented on a electrical hanheld screw driver ?
Swagatam says
Hi, It is simple, replace the motor with the DC screw driver motor, and replace the power supply with an appropriately rated battery.
Pradeep HM says
Design#3: DC Motor Controller with Multiple Features
Hi,
thanks for this project, how much max current we can give to the motor.
Swagatam says
Hi, It depends on the mosfet used for T4. As shown, the BUK453 mosfet can handle upto 100 amps which means the maximum motor current can be anywhere around 50 amps. You can replace this mosfet with any other suitable N channel mosfet.
Papeca says
How to reduce the speed of an electric radio controlled toy car. The car is too fast for the child. I could eventually build an electronic device, and of course not drain the batteries too quickly. Please suggest me a scheme. Thank you.
Swagatam says
You can try implementing the following concept, I hope it will do the job for you:
https://www.homemade-circuits.com/wp-content/uploads/2022/05/DC-pwm-motor-control.jpg
Papeca says
Thank you. I really appreciate your work for the benefit of people.
Swagatam says
Thank you Papeca, It’s my pleasure…
papeca says
Mr. Swagata, I would like to know if the toy car will also go backwards or only forwards with the assembly you proposed.
Swagatam says
Hello Papeca, the previous diagram will produce only forward motion for your toy car. For a reverse action you may have to try the following design:
https://www.homemade-circuits.com/wp-content/uploads/2022/01/DC-motor-speed-controller-circuit-with-reverse-forward1-1200×474.jpg
Papeca says
I forgot to specify that the toy car has two engines. One in front and one behind. It also works at 7.2 Volts (rechargeable battery). The problem is starting to become too complicated for me, but I still have hope that you can help me. Thank you.
Rabia Ali says
hello! a project is given to me that says “Design and implement the power electronics kit that provides the variable speed of the motors. The old motor had the power rating, voltage, and current ratings of the motor as follows; 10hp, 220V ac, 38A. The Power supply provided by the KElectric near the plant has 220V, 60Hz ac supply.” now i have to make a new one considering that The plant is located at distant end of the power grid and the power factor goes low during the peak load period, requires a continuity of the power supply at the constant voltage, current and power specs. what do you suggest?
Swagatam says
Hello, A triac based speed controller is usually preferred for controlling AC motor speed, which can keep the motor speed at a constant level. However if the input voltage varies then the speed might also vary. I do not have a circuit to ensure a constant current and constant voltage to the motor if the input AC varies.
Rabia Ali says
so do you have a triac based speed controller’s circuit? if yes please send me or refer me to a reference link.
Swagatam says
Yes, you can try one of the circuits explained in the following article:
https://www.homemade-circuits.com/how-to-make-simplest-triac-flasher/
Sapan bhavsar says
Hello,
I need circuit diagram of Closed loop control system for bldc motor with hall effect sensor for the prototype purpose only for my college submission.please provide me circuit diagram with specific components rating marks
Swagatam says
Hi, please search “BLDC” using the search box at the top, you may find some good options.
Ronnie Lau says
I have started a new way to slot car racings. I am running 540 motors on slot car tracks that power by DC 12-14V. The problem is that the 540 motor burns up the hand controller. Can you help by advising me what to change on the hand controller like by replacing the resistors or thickening the wires etc. Or better yet is there a better design to build a new controller.
540 motor I was told can go up to 200-300W and draws 20-40 amps.
Thank you for your help.
Sincerely,
Ronnie
Swagatam says
If 300 W 40 amp is burning the controller then no doubt you will have to upgrade the wires appropriately and also upgrade everything through which this current flows.
Ronnie Lau says
Can you kindly point out what size of resistor to start then what size of capacitor? 14 AGW wiring should work if not 12 definitely will do.
Thanks a Million,
Ronnie
Swagatam says
If a single resistor is being used for controlling all the 540 motors (300 watt) then its power will need to be around 400 watts, that can be a massive size. The capacitor will not heat up if its voltage rating is sufficiently higher than the supply input voltage. yes 14 or 12 AWG should be quite enough for the wires.
Prabakaran says
We need a simple closed loop control of dc motor circuit for demonstration for students. please guide me to get a circuit.
Swagatam says
Closed loop will require a feedback control loop through the motor’s back EMF which looks a difficult concept, I do not have it at this moment.
Ged says
Trying to find a circuit similar to that shown for the LM3524 (Back EMF (Whearstone bridge?) speed monitoring, PWM) that also has variable slew-rate limiter. So the truning the speed control fully-up all at once does not result in motor jerking into like, simliarly trune speed control from max to stop does not result in motor jarring to a halt
Swagatam says
Sorry, presently I do not have this circuit with me, if I happen to find one, will surely let you know.
Ged says
Thank you, I can find circuits that contain 2 of the 3 elements (PWM, ‘Feedback’, variable slew-rate limiter) but never all 3
Swagatam says
Yes I understand, I hope someone on this forum might be able to help!
Shiv says
I’m trying to make a suitable speed control circuit for a 24v 15a motor which I’m using for a diy drill also as electric screwdriver.
Kindly suggest a good and efficient circuit for it with forward and reverse function.
Using 775 bearing motor
Swagatam says
I will recommend you the following circuit. For 15 amp operation you can replace the shown mosfet with a IRF3205.
https://www.homemade-circuits.com/wp-content/uploads/2022/05/DC-pwm-motor-control.jpg
The forward reverse feature can be implemented with a DPDT switch or with a 4017 flip flop relay circuit
Theresa Sutton says
I am enjoying the artices and slowly learning the principles. I am building an electric spinning wheel using a RS550 DC motor . It will be powered by an AC 110 to 12v power supply and/or 12v battery pack. Maintaining smooth speed changes and constistent torque is required. Ability to reverse rotation from a stop is also required. Do you a simple circuit that might fit this.
Swagatam says
Thank you, and glad you are learning from this website! I think you should try the following design which is discussed in the above article:
https://www.homemade-circuits.com/wp-content/uploads/2022/01/DC-motor-speed-controller-circuit-with-reverse-forward1-1200×474.jpg
Steve Long says
I need to buy a DC Motor Speed Controller for my golf trolley. The problem with most of them, or all of them is that they have pots to control the speed. The pots keep wearing out. Therefore, I would like to have one that goes up and down in speed by the use of a rocker switch. What would that be called? Are they available?
Swagatam says
I understand that pots can wear out over time, however we don’t sell ready made kits from this site. Nevertheless I can design a circuit which can be used to regulate the motor speed using a push button. If possible I will try to update the design soon as a new article.
Ged says
Hello Steve, do you have to have continuously variable speed or would a series of fixed speeds work?
If so the potentiometer could be replaced with a rotary selector switch (much more robust) wired-up with resistances for the fixed speeds. (The only way I can think that the rocker switch could work is to have something like an electronic version of the selector switch where the rocker ‘clicks’ the selector switch up or down a ‘notch’, like the gear change on a Formula1 car!)
James says
Hi, so I have a question about why all DC electric motor controllers on the market are as described above. They all either have variable speed control from very low speed to maximum speed or have 3 fixed speed settings.
My question is, is it possible to build a circuit and program controller that allows for variable speed control in 3 speeds: low, medium, and high. Low being 1-3MPH, Medium being 3-6MPH, and High being 6-12MPH?
Look forward to hearing your response. That was an excellent article you put together, I look forward to making the circuits to get some more hands on experience with control systems and electric motors!
Swagatam says
Hi, thanks, and glad you liked the article.
The specifications that you have mentioned can be probably implemented using the following modified design:
Do let me know if you any further questions.
Kiwa says
Can this circuit be used on 18v motor
Swagatam says
Yes it can be used, but the 18V must be converted to 12V for supplying the ICs
Jose says
Hi Swagatam, I’m finding your info regarding PWM very helpful for beginners like me. I have been reading and came to this design where you have 3 variabl3 speeds and this is pretty much what I was looking for, but I’m still looking for one more add, not sure if will be possible or f this circuits already does it.
My idea is a ride-on car for a kid that, as he grows up, I can easily change or swap a resistor and therefore increase the top speed. With the diagram you have here I understand I can get that, but can you still use a throttle (potentiometer) in any of the speeds?
So, if the low speed is between 1-3mph, the kid still can ride at 1, 1.5 ,2 or 3 mph, and when he becomes a bit older, in the medium speed he can continue using the throttle to get all the speeds between 3-6mph for example.
Many thanks!
Swagatam says
Thank you Jose,
All the circuits above have a potentiometer for adjusting the motor speed. Can you please tell me which schematic are you referring to?
I guess you are trying to have an option where the speed range can be adjusted through a fixed resistor selector and then have a facility to adjust the speed from 0 to max within those fixed ranges. Yes this feature can be included in all of the above designs.
I would recommend the following circuit which looks pretty easy to configure and use:
https://www.homemade-circuits.com/wp-content/uploads/2022/05/DC-pwm-motor-control.jpg
Jose says
Thanks.
Sorry I forgot to paste an image of the circuit, but yes, I was talking about this one (https://www.homemade-circuits.com/wp-content/uploads/2022/08/DC-motor-speed-controller-with-3-ranges.jpg).
As you said, my idea was to have a (or a serie) or fixed resistor and remove them from the circuit as the kid becomes older, so the top speed increases, thus the previous circuit could give me the 3 speed (low/medium/high) and the potentiometer to adjust the speed within any range.
I have been trying this week to do something that I found on the internet but it didn’t work, couldn’t control the speed with the potentiometer. I tested the potentiometer and was working, so the problem was somewhere else.
I’ll give it a go to your circuits after Christmas.
Many thanks!
Swagatam says
Great! yes that design should work.
I have improved it further so that only one pot is used, you can see it in the following image. All the best to you.
Jose says
MAny thanks,
I´ll try this one when I source the components. I’ll try to remember to let you know how it goes
Swagatam says
No problem. All the best to you!
Chaly says
Is it possible to vary the the speeds with a single botton. If so can you please give me the circuit diagram. It will be highly appreciated.
Swagatam says
It may be possible using an additional 4017 IC with the IC 555. However, the speed adjustment will be UP, UP, UP, then after 10 steps back to zero and then again UP. An up/down sequence at any desired point may not be possible.
Chaly says
First of all thanks for the approval and reply. I am still interested in the use of a single botton to vary the speed of the motor. Can the use of a variable digital resistor in place of the switch be the answer? If so can you please give a circuit diagram. Thanks for all.
Swagatam says
Sure, that’s a good idea. I will try to solve it for you, but first please find out which digital potentiometer can you procure for the implementation.
John says
Hi Swagatam,
Thank you for your website! I have quite enjoyed it for a couple of years and I’m sure many people find it equally educational, informative and overall good read.
I’m in need of a suitable speed control circuit. I will be making a mini drill press (for PCB’s) with a 775 motor https://mantech.co.za/ProductInfo.aspx?Item=82M0668
Because it’s a drill I am considering torque for times I might be drilling something else at lower speeds. So was considering your designs: Improved Torque using CMOS PWM Speed Control and Design#3: Using IC 556 for Enhanced Speed Control (Version 3).
I’m limited by my transformer choices as there aren’t a lot available that supports high amps where I stay. They tend to only want to sell ready made PSU’s at insane prices. So I have a 17V 6.2A transformer available.
I think the CMOS PWM circuit will probably be best however in your design you used a half wave bridge rectifier and I don’t know if that’s on purpose (to use both AC cycles). Since I will be powering some other items on the drill and I don’t have a data sheet for the transformer I’d like to stick to a full wave bridge rectifier.
Another concern is that the mosfet in the diagram seems too low for my motor.
Is FS1 a fuse? I would need a larger one, perhaps 7-10A?
Plan is to use the above 17V 6.2A Trf, 8A bridge rectifier, then push it through a LM338 voltage regulator for 12V output. Then in parallel I’ll have a smd led spot 12V (they claim 0.06A), a lm317 to 5V for a laser and at 12V of course the speed control and drill. So there will be 5V & 12V available.
I’m assuming the IC would need to be connected at 5V and the rest at 12V. I’m unsure if the grounds can be connected together. Always hesitant since this is not always the case. Also as mentioned using a full bridge rectifier with voltage regulator. Current mosfet & fuse seems too low.
Could you kindly have a look at my configuration and provide me with a suitable circuit diagram?
Swagatam says
Thank you John! Glad you liked the website!
Yes you can try the CMOS speed controller circuit, with a full bridge rectifier input. However please note that this circuit was taken from an old magazine which claims that circuit would provide high torque at lower speeds, I am myself unable to confirm this theory.
Yes FS1 is a fuse.
Another think is that a 6 amp transformer will not be able to provide high torque to a 10 amp motor, so you may have to opt for a 10 to 15 amp transformer.
The IRF540 can handle upto 20 amps so it might be OK, however if you are still concerned you ca use an IRF3205 mosfet.
Please let me know if you have further doubts?
sevoleona says
Hi Swagatam.
do you have a circuit diagram speed control for 145 Volt BDC motor ?
the power suply input is 145 Volt from transformer and bridge diode
if you don’t mind please send to my email sevoleona@gmail.com
thanks in advance
Swagatam says
Hi Sevoleona, Sorry I do not have a 145V BLDC motor controller circuit with me at this time.
sevoleona says
Hi Swagatam
I mean a BDC not a BLDC motor Swa..
I did with 7 paralel MJE13007 and 1 driver transistor MJE 13007, with 50K pot, and 10000uf /250V elco.
when I switch on the circuit, all MJE’s was burn,
if you have time build me a circuit please.
thanks a lot
Swagatam says
Hi sevoleona, OK I will try to design it for you soon….
sevoleona says
I mean a Brushed DC motor Swagatam.
not a brushless.
thanks
Swagatam says
OK, You can try the following design for your 145V BDC motor. You can replace the mosfet with a BJT which must be rated at minimum 200V or higher:
sevoleona says
Hi Swag.
it’s me again .
are you use proteus to simulate your design ?
Swagatam says
Hi Sevoleona,
I do not use proteus simulation, I simulate it in my mind.
earl jones jones says
i’m inquiring about using an igbt not a mosfet
Suat Kaleli says
Hi Swagatam;
In my circuit I will use also a 4.8 V cordless / rechargeable screwdriver motor. What if I would place 2 or 3 diodes in serial to control the rpm in order to gain slower rpm. Is that same when comparing the above circuits and placing diodes or diodes means not slower rpm but less torque? Kind Regards
Swagatam says
Hi Suat,
you can use diodes in series to reduce the voltage to the motor causing its speed to reduce, but the problem is that if the diodes heat up then the motor speed will not be controlled and we cannot add a heatsink to a diode, but we can add a heatsink to a transistor.
With a PWM version the transistor will not heat up as much as it would do in a non pwm version.
Suat Kaleli says
thanks too much Swagatam;
However; the motor will be in use for a minute or less duration and the period of the motor usage will be about 3 or 4 times in a day. Then please advise if it is still there is a heating problem may occur?
Swagatam says
You are welcome Suat,
It will depend on the diode current rating and the motor current rating. If you are using 1N5402 diodes and the motor current rating is less than 1 amp then the diodes may not heat up too much within a minute.
Suat Kaleli says
I tested also 4 pieces of 1N4007 diodes in parallel connected and were remedy on reducing rpm. Start current in a second was about 2 or 1.5 amperes and linear cruise fix current is below 1 ampere. I need your evaluations since I have 1N4007 in my stocks. Best Regards
Swagatam says
Diodes actually don’t work correctly in parallel, unless of course they are tightly joined with each other and their leads soldered tightly. If the 4 diodes are not heating up then probably they would drop 0.6V correctly across them, and the drop in voltage will cause a drop in current consumption of the motor