Fork me on GitHub

Project Notes

#573 555 PWM Motor Control

Testing small DC motor control with a 555 time PWM signal


Here’s a quick demo..



Pulse-width Modulation (PWM) is a common method for controlling the speed of DC motors.

The PWM duty cycle controls the nett power being provided to the motor, but by maintaining a constant “on” voltage, the torque is not greatly affected by speed.

The PWM frequency is not so important, however there will be a “sweet spot” for a particular motor:

  • too high, and low speed control can be affected (not enough power delivered in each “on” cycle to move the motor)
  • too low, and vibration and “chugging” can be a problem
  • need to avoid resonant frequencies of the mechanical assembly

A 555 timer makes a simple controller. Here I’ve used a “diode-steered” variable duty cycle configuration, with PWM duty cycle controlled with a 100kΩ variable resistor.

The motor I’m testing with is a small DC motor, with a fly-back diode to dissipate the voltage spike as the motor load is switched.




Breadboard Build

Credits and References

About LEAP#573 555 TimerMotors
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is my personal collection of electronics projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.