In some of my projects, I used a driver based on Allegro A4988 IC to control stepper motors. This tutorial, divided in three posts, will show you how to use that controller with Arduino.
Stepper motors
A stepper motor is a syncronous DC motor; it’s rotation is divided into a large number of steps. With the correct control signals, the motor moves one step at a time.
On Internet you can find many articles about the how a stepper motor works; I suggest you to read the one by Douglas W. Jones, from the University of Iowa.
Stepper motors are divided in:
- unipolar motors
- bipolar motors
The Allegro A4988 IC is designed for driving bipolar motors.
Motor characteristics
When choosing the right stepper motor, you have to consider some main characteristics.
First, the size: the National Electrical Manufacturers Association (NEMA) defined a world-wide standard: motors are labeled “NEMAxx“, with xx a number that indicates the size (for example a NEMA17 has a diameter of 1.7 inches).
Another important characteristic is the torque, that indicates how “strong” the motor is. Although the S.I. (International System of Units) defines N·m (Newton for meter) as torque’s official unit, manufacturers often use other units (Kg·m, Kg·cm, oz·inch…); online converters are available to compare different motors.
Two electrical parameters are usually present on motor’s datasheet: the maximum current per phase (A) and the rated voltage (V). The rated voltage is not the maximum supply voltage; it is instead the voltage that, based on the resistance per phase, imposes the maximum current. You’ll learn that it’s possible to supply motors with a higher voltage, but you must limit the corresponding output current.
In the next page, you’ll learn how to drive stepper motors with A4988 IC…