DC Motor and Controller Guide

From Phidgets Support

3253.jpg DCC1000.jpg DC Motor Image 3.jpg


A DC Motor and Phidgets DC Motor Controller

DC Motors are the simplest way to turn electrical power into physical motion.

They can be found in all types of applications, from power tools, to remote control cars, to large industrial machinery.

Brushless DC Motors vs Regular DC Motors

A BLDC Motor and Phidgets BLDC Motor Controller

Brushless DC (BLDC) Motors are similar enough in control principles to DC Motors when using the right Phidgets that they can be treated the same as basic DC Motors for this discussion.

Brushless DC motors tend to have better efficiency, power and longevity than their standard (brushed) counterparts, while simply requiring more wiring. There are more internal complexities, but these differences are handled automatically by using the correct motor controller.

Phidgets brushless DC motor controllers only support sensored BLDC motors, which are the most common type for serious applications.

Basic Principles

A DC Motor spins when voltage is applied.

At the most basic level, a DC motor spins by applying voltage across the motor terminals. Apply more voltage and the motor spins faster. As the motor gets loaded down, it will be forced to spend more energy fighting the load, and will slow down accordingly.

The force applied by a DC motor at a given voltage reduces as it spins faster. We’ll cover the reasons later, but the result is that for any applied voltage and motor loading, the motor will accelerate to a speed that balances the force required to move the motor.

The graph below shows the relationship between motor voltage and speed of rotation for a motor we tested, captured in the Phidgets Control Panel.

Controlling a DC Motor

Basic Control

In this way, you can control a DC Motor’s speed by adjusting the applied voltage. This can be done using DCMotor Phidgets to drive a motor forwards or backwards at different speeds.

Controlling a DC Motor

A DC motor controller Phidget allows you to control the relative speed of the motor by setting a fraction of full power to give to the motor. For many applications this is already a good enough approximation of controlling the motor’s speed for basic control.

Control Methods

An encoder attached to a DC Motor

You can pair a DC motor with data from any number of sensors to move mechanical systems in various ways. We won’t cover the specifics of how to use them here, but Phidgets users have had success controlling DC motor based systems using a wide array of sensors, from rotation sensors, to draw-wire sensors, to spatial tilt sensors.

The most direct way of measuring the position of your motor with Phidgets is using an encoder interface. For the purposes of this document, an encoder is simply a device that measures position information in a way that digital systems can understand.

DC Motors sold by Phidgets have the option to attach an encoder to measure their rotation, and most Phidget motor controllers have a plug for an encoder built-in. Modern Phidgets motor controllers have built-in features to use this information to produce smooth motion.

Phidgets Built-In Position Control

You can use the built-in encoder input on many recent DC Motor Phidgets to control the position of your system directly, using the MotorPositionController feature provided by Phidgets.

This feature allows you to set up your system so you only need to tell the motor where to go with a given speed and acceleration, and it will go there.

Torque, Current and Power

Now that we have covered the basics of using DC motors and how easily they can be controlled with Phidgets, we can cover more in-depth concerns, such as torque curves and power consumption.

A DC Motor Draws More Current Under Load

A DC Motor’s torque is proportional to the electrical current flowing through it. The more current, the harder the motor pushes to get moving. A higher supply voltage will try to push more current, and allow a higher maximum torque for a given motor.

As a DC motor spins faster, it begins trying to generate its own current to oppose the motion. So long as the motor is powered, this results in a reduced current driving the motor. Under no load, the motor will spin up to the point where this generated electromotive force (EMF) cancels out the supply, and the system consumes barely any power while spinning as fast as it can.

As the motor gets loaded down, the motor slows allowing more current to flow and generating more torque to fight the load. This tendency of the motor to consume more current at low speeds means that the DC Motor will work harder when it’s weighed down, and when it’s starting up.

Thermal Image of a Stalled DC Motor

Once the motor is loaded down to the point it can no longer spin, it will consume as much current as it can, generating maximum torque, but potentially overheating in the process. Overloading an electric motor to this point is called a “stall” and should be avoided.

To prevent problems caused by this kind of runaway current, Phidgets DC Motor Controllers have a current limiting feature. This can be useful in both preventing overheating and/or automatically limiting the available torque if desired.


A DC motor can be made to passively resist fast movement

Another result of the electromotive forces (EMF) caused by the spinning motor is that by connecting the motor terminals together when it’s spinning, the motor will produce a current (and thus a force) opposing the rotation of the motor. This method of using the motor’s own rotation against itself is called braking.

When braking, a faster rotation generates a higher EMF, resulting in a higher braking current, and the motor will brake harder when it’s spinning faster.

A DC Motor that is not moving will generate no passive braking, as no motion results in no EMF being generated, and thus no current and no torque.

A Phidgets DC Motor controller can be used to control the braking force applied by your DC motor.