PWM Motor Speed Controller Using 555 Timer

The project for today uses a 555 timer IC to control the speed of a PWM motor. It helps you change the speed of a DC motor that isn’t very powerful. For use in electrical projects, DC motors can be controlled using a variety of circuits available online. Yet, the PWM motor speed controller—which uses an AVR, 8051, or Arduino—is the greatest choice for evenly and smoothly operating the motor.

A variable potentiometer connected in series with the motor can also be used to construct this motor speed controller. However, we are unable to complete it for the project for two reasons. First of all, too much power will be wasted since the variable resistance wastes too much energy as heat. Secondly, this approach is not applicable to automation projects.

What is PWM (Pulse Width Modulation)?

A method for lowering the average power delivered by an electrical signal is called pulse width modulation (PWM) or pulse duration modulation (PDM). By rapidly turning on and off the supply and load switches, the average voltage or current supplied to the load can be regulated. It functions essentially as a switch that is always on and off—a square wave. It is frequently used to regulate the speed of dimmable light bulbs and DC motors.

How Does PWM Control Motor Speed?

By using a series of ON/OFF pulses to drive the motor and adjusting the duty cycle, PWM regulates the speed. The modulator voltage controls it. The motor accelerates with increasing voltage. The fraction of time increases when the output voltage is high compared to low when the frequency remains constant.

555 Timer As a PWM Generator

If we create a 555 timer in astable mode, we may utilise it as a PWM circuit, just like microcontrollers. A comprehensive block diagram and graph of the 555 timers operating in astable mode are provided. There, we can observe that when the C1 capacitor is charging through the resistors R1 and R2, the output is “HIGH.” When the C1 capacitor discharges through the R2 resistor, the other component is “LOW.”


It is evident that altering the value of any one of the three components will result in a change in the output value of the entire duty cycle. We need to add two diodes and a potentiometer in place of merely one R2 resistor in order to address this problem.


This time, the potentiometer’s left, right, and R1 rotations will determine the “ON Time,” while the potentiometer’s left and right rotations will determine the “OFF Time.” One frequency cycle will likewise be the same during charging and discharging due to the same total resistance.

Because R1 resistance is so much lower than potentiometer resistance, controlling the charging and discharging process is simple. The 555 timer IC’s pin number 5, or the control pin, is unusable and is linked to a 100nF capacitor in order to block out external noise. Pin number 4 is utilised directly with VCC in order to prevent any output resetting.

The 555 timer IC’s output is limited to 200mA of load current. This means that in order to drive the motor that requires more current than this rating, we need a MOSFET. For this, I used a MOSFET, which can manage current up to 5A. A 1KΩ resistor must be used to connect the MOSFET’s base to the output. A feedback diode is therefore needed in parallel with the motor to adjust for voltage fluctuations.


img 20240104 0005594940962563281316117

Circuit Schematic



555 Timer IC
1N4007 PN Diode
100nF Ceramic Capacitor (x2)
1KΩ Resistor
100KΩ Potentiometer
9V Battery

Working Principle of PWM Motor Speed Controller

In this project, a basic 555 timer circuit drives a DC motor. In this project, the 555 is running in astable mode, which rotates the motor by continuously producing HIGH and LOW pulses.

Remarkably, we can use this circuit at minimal cost and material consumption as an astable multivibrator. With a few little circuit modifications, the 555 timer ic can be utilised as a pulse width modulator in this mode. The passive components—that is, the resistances and capacitors attached to the motor—provide the frequency required to run it.

Leave a Comment