When calculating the PWM Equivalent Voltage, we generally assume that the motor will operate ideally and respond as if it was connected to a non-PWM power source providing the voltage. But that's not the case. For example, a Yellow-TT motor will easily spin if a single 1.5-volt battery is connected, but will not turn until the PWM Equivalent Voltage coming from a Motor FeatherWing reaches 2.0 volts when operating in fast decay mode. And when it does start, it suddenly rotates at 4000 RPM. Why is that?
Since a brushed DC motor’s internal rotor consists of two or more coils of wire wound around laminated magnetic core material, the motor acts like an inductor. Depending on size of the rotor coil, it may take a few milliseconds for the energy to build sufficiently to turn the shaft.
Rotor coil inductance becomes an important factor to consider when using PWM for motor speed control. The motor coil works best when the applied voltage is relatively steady since it needs time for its magnetic field to reach the needed strength. At higher PWM frequencies, the pulses from the motor controller board change too quickly to provide enough energy to spin the motor until the equivalent voltage reaches 2.0 volts, although switching to using slow decay mode can help.
When the PWM frequency is lowered, the motor’s coils extract more energy from the pulsed PWM signal. That means that the motor will start spinning at a lower equivalent voltage and will operate with improved torque at low speeds. The following graphs compare the Yellow-TT motor's speed response when the default PWM frequency of 1600Hz is changed to 25Hz.
The spin threshold at 25Hz starts at 0.5 volts or less depending on the decay mode selection, increasing the useable motor speed range to as low as 100 RPM. The Yellow-TT gearbox reduces the motor’s RPM by a factor of 48, so the attached wheel will be turning at 2 RPM or about 0.7 cm/sec. A velocity like that will make it much easier for your robot to sneak up on the cat.
So now that we know about current decay mode and PWM frequency, how do we go about choosing the best configuration of the two parameters for our robot’s motors?