STEP 1 / 6ARDUINO

DC Motor Speed Control using Arduino and Potentiometer

Electric motors are the most commonly used motors in robotics and electronics projects. Various methods exist for controlling DC motor speed, but in this project, we are using PWM to cont…

DC Motor Speed Control using Arduino and Potentiometer - source illustration from page 815
PROJECT#380
TRACKArduino
PARTS04
STAGES06
STEP 1 / 6 · Overview

Know the mission before touching a wire.

Understand what you are making, prepare the right tools, and make the workbench safe.

01

Project details

DC Motor Speed Control using Arduino and Potentiometer is a arduino project. Electric motors are the most commonly used motors in robotics and electronics projects. Various methods exist for controlling DC motor speed, but in this project, we are using PWM to cont…

Source pages
814-816
Named parts
4
Build goal
Working, tested prototype
02

Tools you need

  • Digital multimeter
  • Wire stripper and side cutters
  • Soldering iron with a fine tip
  • Current-limited bench supply
  • Computer with a data-capable USB cable

Use eye protection, good lighting, and a clean insulated surface throughout the build.

03

Safety precautions

  • Disconnect every power source before changing a connection.
  • Check component polarity, pinout, and supply voltage twice.
  • Use a current limit for the first power-up.
  • Keep liquids, loose metal, and uninsulated wires away from the bench.
Ready to continue?
STEP 2 / 6 · Parts library

Gather, identify, and understand every part.

Use the standardized inventory, then open What's this? to learn each part's role, advantages, limitations, handling, and specifications.

NAMED PROJECT INVENTORY4 PART LINES
PARTTYPEQTYREADY
MArduino UNOMODULE1
What's this?Image, role, pros, cons, handling & specifications
DC Motor Speed Control using Arduino and Potentiometer - source illustration from page 815MODULE LEARNING VIEW

Arduino UNO

A programmable controller that reads inputs, makes decisions, and drives the project's outputs.

What it does here

It is the control centre and must use the documented board, pin map, supply, and logic level.

Buy / compare this part

Advantages

  • Reprogrammable and reusable
  • Large learning ecosystem
  • Complex behaviour remains changeable

Limitations

  • GPIO voltage and current are limited
  • Some pins affect boot or communication
  • Loads normally need a driver

Handling

  • Disconnect power before rewiring
  • Avoid static discharge
  • Never power motors, relays, or pumps directly from GPIO

Specifications to verify

  • Use the exact model, value, package, and rating listed for Arduino UNO; similar-looking parts are not always interchangeable.
  • Confirm operating voltage, logic level, pinout, memory, USB interface, and maximum GPIO current.
PDC motor, Transistor 2N2222PART1
What's this?Image, role, pros, cons, handling & specifications
PN2222A NPN RF transistorPART LEARNING VIEW

DC motor, Transistor 2N2222

An output component turns an electrical control signal into light, sound, motion, switching, or displayed information.

What it does here

It presents the circuit result or acts on the physical world.

Buy / compare this part

Advantages

  • Makes system state visible
  • Can be tested separately
  • Supports clear troubleshooting

Limitations

  • Loads may exceed controller current
  • Polarity or driver direction can matter
  • Inductive loads create voltage spikes

Handling

  • Use the documented driver stage
  • Check polarity and load current
  • Add flyback protection for inductive loads

Specifications to verify

  • Use the exact model, value, package, and rating listed for DC motor, Transistor 2N2222; similar-looking parts are not always interchangeable.
  • Confirm voltage, current, polarity, interface, driver requirements, and duty cycle.
PPotentiometer 100k ohmPART1
What's this?Image, role, pros, cons, handling & specifications
DC Motor Speed Control using Arduino and Potentiometer - source illustration from page 815PART LEARNING VIEW

Potentiometer 100k ohm

A named project component whose exact role is defined by the source circuit and build guide.

What it does here

It performs a documented electrical, control, interface, or construction function in this project.

Buy / compare this part

Advantages

  • Selected for this project
  • Can be checked independently
  • Supports modular troubleshooting

Limitations

  • Substitutes may differ
  • Generic names can hide variants
  • Pinouts and ratings vary

Handling

  • Compare the received part with the source
  • Keep it labelled
  • Do not force connectors or adjusters

Specifications to verify

  • Use the exact model, value, package, and rating listed for Potentiometer 100k ohm; similar-looking parts are not always interchangeable.
  • Confirm dimensions, ratings, connection method, polarity, and environmental limits.
PCapacitor 0.1uF, Breadboard, Jumping WiresPASSIVE1
What's this?Image, role, pros, cons, handling & specifications
Ceramic capacitorPASSIVE LEARNING VIEW

Capacitor 0.1uF, Breadboard, Jumping Wires

A passive component sets current, voltage, timing, filtering, or signal behaviour without adding gain.

What it does here

Its exact value and tolerance determine how the surrounding stage behaves.

Buy / compare this part

Advantages

  • Simple and dependable
  • Low cost
  • Easy to measure before installation

Limitations

  • A wrong value can stop or damage the circuit
  • Ratings must not be exceeded
  • Polarized parts require correct orientation

Handling

  • Measure unclear values
  • Observe capacitor polarity
  • Avoid overheating leads while soldering

Specifications to verify

  • Use the exact model, value, package, and rating listed for Capacitor 0.1uF, Breadboard, Jumping Wires; similar-looking parts are not always interchangeable.
  • Confirm value, tolerance, power or voltage rating, polarity, and package size.
Ready to continue?
STEP 4 / 6 · Source code

Confirm the hardware-only control path.

This project does not include firmware in the source. The circuit itself provides the required behaviour.

01

How to connect

  1. Match every controller label to the circuit view and source pin map.
  2. Join grounds before signal wires when separate low-voltage supplies are used.
  3. Keep motors, relays, pumps, and other loads on a suitable driver and external supply.

Common mistakes

Reversed VCC/GND, board-label versus GPIO-number confusion, missing common ground, and charge-only USB cables.

Troubleshoot

Disconnect loads, continuity-test one path at a time, then test with a current limit.

02

Software preparation

No IDE, board package, library, or firmware upload is required for this project.

If you add a programmable controller as an extension, document its pin map separately.

03

How to upload code

The original design is implemented entirely in hardware, so proceed after verifying the circuit and supply.

Ready to continue?
STEP 5 / 6 · Build

Assemble, deploy, test, and troubleshoot.

Use the complete source notes in build order, then pass the final checks before calling the project finished.

ASSEMBLY

Build in functional stages

  • Power and regulation
  • Controller or processing stage
  • Inputs and sensors
  • Outputs and loads
  • Enclosure and strain relief
TEST

Power up safely

  • Inspect unpowered continuity first
  • Apply the lowest safe current limit
  • Measure supply rails before signals
  • Add one load at a time
  • Record expected and actual results
TROUBLESHOOT

Work from simple to complex

  • Confirm power, ground, polarity, and orientation
  • Compare each pin with the source
  • Test inputs separately from outputs
  • Replace only one variable at a time
  • Power off before every correction
PROJECT-SPECIFIC BUILD NOTES

Follow the documented instructions.

These notes come from this project's source and remain in their original order.

01

Project overview

Project build note

Electric motors are the most commonly used motors in robotics and electronics projects. Various methods exist for controlling DC motor speed, but in this project, we are using PWM to control DC motor speed. This project uses a potentiometer for controlling the speed of the DC motor. By rotating the knob of the potentiometer, the speed can be modified.

02

Pulse Width Modulation

Project build note

The PWM technique, also known as pulse width modulation, is used to control voltage or power. Applying 5 volts to a motor will cause it to move at a certain speed, and if we reduce a charging voltage by 2 volts, or applying 3 volts to the motor, the motor speed will also decrease. In the project, PWM is used to control the voltage using this concept. Working and Circuit Diagram

We use a 100K ohm potentiometer to change the duty cycle of the PWM signal in this circuit to control the speed of the DC motor. Connecting the 100K ohm potentiometer to the Arduino UNO's A0 analog input pin, and connecting the DC motor to the PWM pin 12 of the Arduino, creates a simple controller to oscillate a DC motor. Using an Arduino program only requires that the voltage be read from analog pin A0. By using the potentiometer, the voltage can be varied at the analog pin. A duty cycle is then adjusted as necessary after doing some calculations.

03

Material Required

Project build note

Arduino UNO DC motor, Transistor 2N2222 Potentiometer 100k ohm Capacitor 0.1uF, Breadboard, Jumping Wires The HIGH time, for example, will be 768ms (256-1024) and the LOW time, 256ms when we input 256 values to the analog input. It is only implied that 75% of frequency oscillation is being observed by our eyes. High frequency

oscillation is almost imperceptible to our eyes, which makes the motor appear to run continuously with 75% of speed. This is how the speed can be controlled using a potentiometer.

Ready to continue?
PROJECT ACHIEVED

You built DC Motor Speed Control using Arduino and Potentiometer.

You followed the full workflow from understanding the mission to testing the finished project. That is a real engineering achievement - well done.

DIY Smart Vacuum Cleaning Robot using Arduino project thumbnail featuring Arduino Uno, Ultrasonic sensor, L293D - specified part
NEXT ARDUINO ADVENTURE

DIY Smart Vacuum Cleaning Robot using Arduino

Ready to reuse what you learned in another project from the same track?

Start this project
Browse all 500 projects