A Motor Controller is a device that acts as 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).
Motor controllers can only be chosen after you have selected your actuators. There are currently three types of motor controllers offered by RobotShop: Brushed DC motor controllers, Servo Motor Controllers and Stepper Motor Controllers. 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 the 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 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 is the communication protocol (if any), the current required to operate (over 0.1A) and the voltage (over 5V). If you are not sure of how to control a specific actuator, help is available.
This is a companion discussion topic for the original entry at https://community.robotshop.com/tutorials/show/basics-what-is-a-motor-controller