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

Dependents:   tes_stepper Test_all

Stepper Motor Driver, designed for use with the Pololu A4988 breakout, however more than likely compatible with, for example the Sparkfun Easy Driver

Files at this revision

API Documentation at this revision

Comitter:
melse
Date:
Sun Feb 24 16:23:02 2013 +0000
Commit message:
Initial Commit

Changed in this revision

Stepper.cpp Show annotated file Show diff for this revision Revisions of this file
Stepper.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 52fb09e87581 Stepper.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Stepper.cpp	Sun Feb 24 16:23:02 2013 +0000
@@ -0,0 +1,41 @@
+#include "Stepper.h"
+#include "mbed.h"
+
+stepper::stepper(PinName _en, PinName ms1, PinName ms2, PinName ms3, PinName _stepPin, PinName dir):en(_en),
+    microstepping(ms1, ms2, ms3),
+    stepPin(_stepPin),
+    direction(dir)
+{
+}
+
+void stepper::step(int microstep, int dir, float speed)
+{
+    if (microstep == 1) {
+        microstepping = 0;
+    } else if (microstep <= 4) {
+        microstepping = microstep / 2;
+    } else if (microstep > 4) {
+        microstepping = (microstep / 2) - 1;
+    }
+    if (dir == 1) {
+        direction = 0;
+    } else if (dir == 0) {
+        direction = 1;
+    }
+    
+    //  Step...
+    stepPin = 1;
+    wait(1/speed);
+    stepPin = 0;
+    wait(1/speed);
+}
+
+void stepper::enable()
+{
+    en = 0;
+}
+
+void stepper::disable()
+{
+    en = 1;
+}
\ No newline at end of file
diff -r 000000000000 -r 52fb09e87581 Stepper.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Stepper.h	Sun Feb 24 16:23:02 2013 +0000
@@ -0,0 +1,19 @@
+#ifndef MBED_STEPPER_H
+#define MBED_STEPPER_H
+#endif
+
+#include "mbed.h"
+
+class stepper
+{
+public:
+    stepper(PinName _en, PinName ms1, PinName ms2, PinName ms3, PinName _stepPin, PinName dir);
+    void step(int microstep, int dir, float speed);
+    void enable();
+    void disable();
+private:
+    DigitalOut en;
+    BusOut microstepping;
+    DigitalOut stepPin;
+    DigitalOut direction;
+};
\ No newline at end of file