A simple stepper motor driver library, supporting micro-stepping drivers such as the Pololu A4988 stepper driver carrier or the Sparkfun EasyDriver.

Dependents:   Robot2016_2-0_STATIC Robot2016_2-0

Fork of StepperMotor by Matthew Else

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Stepper.cpp Source File

Stepper.cpp

00001 #include "Stepper.h"
00002 #include "mbed.h"
00003 
00004 Stepper::Stepper(PinName _en, PinName _stepPin, PinName _dir, float step_per_mm):en(_en),
00005     stepPin(_stepPin),
00006     direction(_dir)
00007 {
00008     Step_Per_MM = step_per_mm;
00009 }
00010 
00011 void Stepper::step(int number, int dir, float speed)
00012 {
00013     if (dir == 1) {
00014         direction = 0;
00015     } else if (dir == 0) {
00016         direction = 1;
00017     }
00018     
00019     //  Step...
00020     for(int i=0; i<number; i++)
00021     {
00022         stepPin = 1;
00023         wait_us(5);
00024         stepPin = 0;
00025         wait_us(5);
00026         wait(speed);
00027     }
00028 }
00029 
00030 void Stepper::mm(int number, int dir)
00031 {
00032     step(number*Step_Per_MM, dir, DELAY-0.001);
00033 }
00034 
00035 void Stepper::enable()
00036 {
00037     en = 0;
00038 }
00039 
00040 void Stepper::disable()
00041 {
00042     en = 1;
00043 }