Arduino - Stepper Motor
Arduino - Stepper Motor
A Stepper Motor or a step motor is a brushless, synchronous motor, which divides a full rotation into a number of steps. Unlike a brushless DC
motor, which rotates continuously when a fixed DC voltage is applied to it, a step motor rotates in discrete step angles.
The Stepper Motors therefore are manufactured with steps per revolution of 12, 24, 72, 144, 180, and 200, resulting in stepping angles of 30, 15, 5,
2.5, 2, and 1.8 degrees per step. The stepper motor can be controlled with or without feedback.
Imagine a motor on an RC airplane. The motor spins very fast in one direction or another. You can vary the speed with the amount of power given
to the motor, but you cannot tell the propeller to stop at a specific position.
Now imagine a printer. There are lots of moving parts inside a printer, including motors. One such motor acts as the paper feed, spinning rollers
that move the piece of paper as ink is being printed on it. This motor needs to be able to move the paper an exact distance to be able to print the
next line of text or the next line of an image.
There is another motor attached to a threaded rod that moves the print head back and forth. Again, that threaded rod needs to be moved an exact
amount to print one letter after another. This is where the stepper motors come in handy.
A regular DC motor spins in only direction whereas a Stepper motor can spin in precise increments.
Stepper motors can turn an exact amount of degrees (or steps) as desired. This gives you total control over the motor, allowing you to move it to
an exact location and hold that position. It does so by powering the coils inside the motor for very short periods of time. The disadvantage is that
you have to power the motor all the time to keep it in the position that you desire.
All you need to know for now is that, to move a stepper motor, you tell it to move a certain number of steps in one direction or the other, and tell it
the speed at which to step in that direction. There are numerous varieties of stepper motors. The methods described here can be used to infer how
to use other motors and drivers which are not mentioned in this tutorial. However, it is always recommended that you consult the datasheets and
guides of the motors and drivers specific to the models you have.
Components Required
Follow the circuit diagram and make the connections as shown in the image given below.
Sketch
Open the Arduino IDE software on your computer. Coding in the Arduino language will control your circuit. Open a new sketch File by clicking New.
Arduino Code
#include <Stepper.h>
void setup() {
myStepper.setSpeed(5);
Serial.begin(9600);
void loop() {
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
Code to Note
This program drives a unipolar or bipolar stepper motor. The motor is attached to digital pins 8 - 11 of Arduino.
Result
The motor will take one revolution in one direction, then one revolution in the other direction.
More Detail
Video
43 Lectures 3 hours
Amit Rana
More Detail
Video
20 Lectures 2 hours
Ashraf Said
More Detail
Video