Basics: What is a Motor Controller?
Step 1 — What is a Motor Controller?
A Motor Controller is a device that acts as an intermediary between your robot’s microcontroller, batteries, and motors. A motor controller is necessary because a microcontroller can usually only provide roughly 0.1 Amps of current whereas most actuators (DC motors, DC gear motors, servo motors, etc.) require several Amps. The current a motor consumes is related to the torque it can provide (a small motor will not consume much current, but can’t move a large mass whereas a large motor can move a large mass but will consume a large current).

Step 2 — What Types Are There?
Motor controllers can only be chosen after you have selected your actuators. There are currently five types of motor controllers offered by RobotShop:
Brushed DC motor controllers
Brushless DC Motor Controllers
Servo Motor Controllers
Stepper Motor Controllers
AC Motor Controllers
Step 3 — How to Choose One?
Choosing the right motor controller is more straightforward than you might think.
If you need a DC Motor Controller, base your choice on the type of control method (whichever is best for you: Analog Voltage; I2C; Multiple; PWM; R/C; Serial), the motor’s maximum current and the motor’s nominal supply voltage. Some DC Motor Controllers control two motors independently and it is important to note that often only ONE supply voltage can be used to supply both motors (the current can be different).

In order to choose the appropriate Servo Motor Controller, first select the appropriate method (by hand using a dial vs. computer control) and the servo motor controller with the appropriate number of connections. When deciding between manufacturers, an important note is the total power output. Servo motors are meant to use specific voltages (for peak efficiency).

In order to choose the right Stepper Motor Controller, you must first decide if you want to use a unipolar or bipolar stepper motor. Most stepper motor drivers are rated by the input voltage and maximum current.

Many miscellaneous devices also need to be controlled using separate controllers. For example, many linear actuators use either geared DC motors with encoder feedback (therefore a DC Motor Controller would be appropriate), though some take servo input (so you would select a servo motor controller). The three main criteria for deciding if your actuator needs a separate controller are the communication protocol (if any), the current required to operate (over 0.1A), and the voltage (over 5V).
