A Simple 555 PWM Circuit with Motor Example

In this tutorial, you’ll learn how to build a 555 PWM Circuit. The 555 timer is one of the most popular integrated circuits for hobbyists. And one of the cool features is its ability to produce a PWM signal.

The circuit is fairly easy to make, and it can control a great variety of things, including motor speed and LED brightness.

555 PWM Circuit Diagram

Schematics for a 555 Timer PWM Circuit controlling a motor

Note: For VCC, you can use anything from 5V to around 15V. What to choose will depend mostly on the size of the motor you are using. If it is small, you can control everything with 5V.

Components Needed

  • A DC motor
  • 555 Timer IC
  • Q1: IRLIZ44N MOSFET (or any other n-type MOSFET with a suitable gate threshold)
  • RV1: 10 kΩ Potentiometer
  • R1: 1 kΩ Resistor
  • R2: 5 kΩ Resistor
  • C1: 100 nF Ceramic Capacitor
  • C2: 1 nF Ceramic Capacitor
  • D1-D2: 1N4001 Diode

How the PWM 555 Circuit Works

The PWM 555 Circuit is known as an improved 555 oscillator. This is because it makes use of a couple of extra components to improve the output signal that the most common astable multivibrator circuit would give. It uses R1 and C1 to control the frequency of the signal. And you can modify the duty cycle with RV1.

With the duty cycle, you can control the average voltage in the output of the 555, which makes it a very functional analog controller for your projects. For example to control the speed of a motor or dim an LED.

In the example below, we’ll connect a motor.

How to Build the PWM 555 Circuit

Here you can see the circuit already built:

Here is a closer look, be aware of the placement of R1 and one of the diodes, which are placed in a way to not take too much space:

The Result

In this video, you will be able to see the output of the 555 PWM Circuit, and how the duty cycle changes while changing the value of the potentiometer. It is also visible that the change in speed of the motor depends on the duty cycle.

The downside with this circuit is that the frequency of the output also varies quite a bit, which means it does not work well with servo motors that require a specific frequency. If you need a specific and stable frequency, check out this project on controlling a servo motor with the 555 Timer.

More 555 Timer Tutorials

14 thoughts on “A Simple 555 PWM Circuit with Motor Example”

    • It does work, as you can see in the video. But if you’ve found an error somewhere in the article, let me know. Or if you’re having problems getting it to work yourself, just reply here with the motor, mosfet, and voltage you are using and we’ll see if we can help you spot the issue.

  1. I have a circuit that uses a NPN transistor to control a small DC motor using a 555 as a timer.
    It will not work. But if I replace the motor with a resistor and an LED to the collector the NPN works fine.
    I am wondering why, Can you tell me why it does not work or am I doing something wrong.

    • A motor needs much more current to run than an LED. So I’m suspecting that you’re not getting enough current through your transistor.

      Check how much current your motor needs, and check how much current your transistor supports. Many common transistors support only up to 100 mA, while a motor often needs more.

      If you transistor supports the current, then I’m guessing your transistor isn’t turned properly on. You probably have a base resistor, right? You can try a lower value for the base resistor.

  2. The circuit should really have a flyback diode across the motor terminals. Otherwise the back emf spikes can fry the MOSFET.


      Running this without a flyback diode *will* kill the MOSFET over time because the inductance of the motor can generate 100+V which only the biggest FETs can handle safely without breaking.

      So put a diode between Vcc (Cathode) and Source (Anode) of the FET (parallel to the motor) and it will give the inductance a path to dump it’s current.


  3. Hi, I’ve been trying to make this circuit and the potentiometer doesn’t change the motor speed in the simulator I used:

    I’ve done everything almost exactly as you showed on your breadboard photo with some minor changes due to software limitations. If you can, can you check the circuit and let me know what I’m doing wrong? I want to build this on a PCB and don’t want to waste parts on screw ups.

      • I’m simulating it in tinkercad and probably worded it wrong.
        Is there any reason the potentiometer might not be changing the RPM of a motor if all the other parts of the circuit are correct?


Leave a Comment