Controlling the speed of a DC motor


I have a low speed, low torque application that I want to use a DC motor for. Here is a motor that satisfy my size requirement:

A photo is also attached.

It appears to be a brushed DC motor. But the rpm at around 20,000 and that’s way too high. I need about 500 to 1000 rpm. Again, the load is very light (close to nothing). To bring down the rpm, I can either use a gear train, or use PWM. I have a few questions:

  1. A gear train trades rpm for torque, so if I get 1000 rpm at the output, I get a corresponding multiplier for torque. Is this also true for PWM speed control approach?

  2. Is it even possible to bring down the rpm from 20,000 to something like 500 using PWM? That’s a super small duty cycle.

  3. Can you recommend a general approach for my problem? FYI, I also want to reverse the spin periodically (I guess a H bridge is for this?)

I have been playing around with the 28byj-48 stepper motor lately. I guess I can use a stepper motor but I heard it’s not as efficient.


Torque depends on current and PWM is just a system for regulating the average current flowing in the motor by turning the supply on and off. If it is on for the same amount of time that it is off the average will be 50%. Consequently when you apply PWM with a low duty cycle you have a low average current and low torque.

When you are trying to control a motor at low speed your system needs to monitor the motor speed so it can vary the current (the PWM duty cycle) to deal with any fluctuations in speed caused by changes in the load. You can build that sort of control with an Arduino.

However using gears is likely to be much simpler and more effective.


Why not use both?? PWM @ 25% that's 5000 rpm then use a 10:1 gear reduction.... just as an example

  1. Is it even possible to bring down the rpm from 20,000 to something like 500 using PWM? That's a super small duty cycle.

No it is not, and especially if the motor is only slightly loaded. PWM is not so effective for lightly loaded motors.

I guess I can use a stepper motor but I heard it's not as efficient.

A stepping motor provides maximum torque when it is stopped and the torque drops as the speed increases. But as you have not said what your project it is hard to say if a stepping motor is better than a geared motor. Remembers gears will have backlash when reversed.

The OPs motor spec…



Super strong magnetic,Super power,High torque
Silver-containing commutator, widening carbon brush
This N30 motor it not high speed,but it is more powerful than the coreless motor

Motor parameters:

1.Motor size: 10*12mm
2.Motor height: 21mm
3.Output shaft diameter: 1.0mm
4.Output shaft length: 6.0mm
5.Weight: 8.5g
6.Test data:
Voltage: 3.0V Current: 110mA
Voltage: 3.7V Current: 140mA
Voltage: 4.5V Current: 140mA
Voltage: 6.0V Current: 150mA
7.Speed: @3V:19300RPM; @3.7V:23800RPM

Definitely not going to do what is required.
Needs a geared motor.

What is the application?

Tom… :slight_smile: