Fareed Mohmed← All projects

Arduino project · Motors and movement · Easy

DC Fan Speed Controller

Turn a knob to change the speed of a small DC motor or fan.

What you will learn

  • How PWM controls motor speed
  • Why the motor has its own battery pack
  • How a transistor switches a motor

How it works

The potentiometer gives 0 to 100 %. The map step passes this to the motor as the PWM duty (0 to 255). A transistor switches the motor current from the battery pack, and a diode protects the transistor.

Try this next

  • Add an LED that gets brighter with the speed.
  • Add a button for a full-speed boost.
  • Replace the knob with a temperature sensor.

The simulator program and explanation on this page are original. The idea follows a classic Arduino project that students have built for years.

1Choose your Arduino board
2Build the circuit
Parts: sensors and actuators (tap to show or hide)

Try the inputs (virtual sensors)

Pins (you can change them)

PartArduino pin (change it here)How to wire it

Every wire, one by one

Red rail = 5 V from the Arduino 5V pin. Black rail = GND. The coloured wires carry signals. Match the wire colours on the drawing to this list.

#ColourFrom (part and leg)To
3Define the sequence

Steps run from top to bottom, then start again. While the simulation runs, the active step is highlighted in green.

4Arduino code

5Parts list and where to buy

Quantities come from the parts you added. The store links open a search for that item on Robu.in, Amazon.in and ThinkRobotics, so you always see what is in stock today. Check the model, voltage and price before you order.

#ItemQtySearch termBuy / compare
6Export

The PDF has the circuit sketch, pin table, every wire, sequence, full code, the parts list with store links, do’s and don’ts for each part, and the safety notes. The project file lets you come back and keep editing.

7Learn: do’s, don’ts, cautions and tips

In the real world

A fan driven by a DC motor

The speed of your motor sets the speed of the fan blades in the real scene. A bigger number means faster blades.

Tip: use the gold tab at the bottom of the circuit drawing to pull the real-world view up over the Arduino board. Your parts stay visible above it, so you can press a button and watch the real scene react.