A fork of a fine man's work. simplified. No microstepping etc, just a work in progress
Fork of BipoarStepperMotor by
Revision 3:944e51dd1e4c, committed 2015-01-29
- Comitter:
- InBrewJ
- Date:
- Thu Jan 29 15:50:34 2015 +0000
- Parent:
- 2:f1bab151e654
- Child:
- 4:a3d8d60147dd
- Commit message:
- Corrected the pulse sequences...
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sMotor.cpp Thu Jan 29 15:50:34 2015 +0000 @@ -0,0 +1,118 @@ +/* +############################################## +## Program Created by Harshavardan61 ## +############################################## + ---- harshavardan61@gmail.com ----- + +This library was made for 4-Phase Stepper Motors +I don't take any resposability for the damage caused to your equipment. + +*/ + +#include "sMotor.h" + +#include "mbed.h" + +int motorSpeed; // Steper speed + +sMotor::sMotor(PinName A0, PinName A1, PinName A2, PinName A3) : _A0(A0), _A1(A1), _A2(A2), _A3(A3) { // Defenition of motor pins + _A0=0; + _A1=0; + _A2=0; + _A3=0; +} + +//UP +void sMotor::anticlockwise() { // rotate the motor 4 steps UP + for (int i = 0; i < 4; i++) { + switch (i) { // activate the ports A0, A2, A3, A3 in a binary sequence for steps + case 0: { + _A0=1; + _A1=0; + _A2=0; + _A3=1; + } + break; + case 1: { + _A0=0; + _A1=0; + _A2=1; + _A3=1; + } + break; + case 2: { + _A0=0; + _A1=1; + _A2=1; + _A3=0; + } + break; + case 3: { + _A0=1; + _A1=1; + _A2=0; + _A3=0; + } + break; + } + + + wait_ms(motorSpeed); // wait time defines the speed + } +} + +// DOWN +void sMotor::clockwise() { // rotate the motor 4 steps DOWN + for (int i = 0; i < 4; i++) { + switch (i) { + case 0: { + _A0=1; + _A1=1; + _A2=0; + _A3=0; + } + break; + case 1: { + _A0=0; + _A1=1; + _A2=1; + _A3=0; + } + break; + case 2: { + _A0=0; + _A1=0; + _A2=1; + _A3=1; + } + break; + case 3: { + _A0=1; + _A1=0; + _A2=0; + _A3=1; + } + break; + } + + + wait_ms(motorSpeed); // wait time defines the speed + } +} +void sMotor::step(int num_steps, int direction, int speed) {// steper function: number of steps, direction (0- right, 1- left), speed (default 1200) + int count=0; // initalize step count + motorSpeed=speed; //set motor speed + if (!direction) // shaft DOWN + do { + printf("Doing Down: %d\n", count); + clockwise(); + count++; + } while (count<num_steps/4); // turn number of steps applied + else if (direction)// Shaft UP + do { + printf("Doing Up: %d\n", count); + anticlockwise(); + count++; + } while (count<num_steps/4);// turn number of steps applied + +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sMotor.h Thu Jan 29 15:50:34 2015 +0000 @@ -0,0 +1,35 @@ +/* +############################################## +## Program Created by Harshavardan61 ## +############################################## + ---- harshavardan61@gmail.com ----- + +This library was made for 4-Phase Stepper Motors +I don't take any resposability for the damage caused to your equipment. + +*/ +#ifndef MBED_SMOTOR_H +#define MBED_SMOTOR_H + +#include "mbed.h" + +class sMotor { +public: + + sMotor(PinName A0, PinName A1, PinName A2, PinName A3); //motor constructor + + void step(int num_steps, int direction, int speed); + void anticlockwise(); + void clockwise(); + + +private: + + DigitalOut _A0; + DigitalOut _A1; + DigitalOut _A2; + DigitalOut _A3; + +}; + +#endif \ No newline at end of file
--- a/stepperMotor.cpp Mon Sep 23 14:32:02 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -############################################## -## Program Created by Harshavardan61 ## -############################################## - ---- harshavardan61@gmail.com ----- - -This library was made for 4-Phase Stepper Motors -I don't take any resposability for the damage caused to your equipment. - -*/ - -#include "sMotor.h" - -#include "mbed.h" - -int motorSpeed; // Steper speed - -sMotor::sMotor(PinName A0, PinName A1, PinName A2, PinName A3) : _A0(A0), _A1(A1), _A2(A2), _A3(A3) { // Defenition of motor pins - _A0=0; - _A1=0; - _A2=0; - _A3=0; -} - - -void sMotor::anticlockwise() { // rotate the motor 1 step anticlockwise - for (int i = 0; i < 8; i++) { - - switch (i) { // activate the ports A0, A2, A3, A3 in a binary sequence for steps - case 0: { - _A0=0; - _A1=0; - _A2=0; - _A3=1; - } - break; - case 1: { - _A0=0; - _A1=0; - _A2=1; - _A3=1; - } - break; - case 2: { - _A0=0; - _A1=0; - _A2=1; - _A3=0; - } - break; - case 3: { - _A0=0; - _A1=1; - _A2=1; - _A3=0; - } - break; - case 4: { - _A0=0; - _A1=1; - _A2=0; - _A3=0; - } - break; - case 5: { - _A0=1; - _A1=1; - _A2=0; - _A3=0; - } - break; - case 6: { - _A0=1; - _A1=0; - _A2=0; - _A3=0; - } - break; - case 7: { - _A0=1; - _A1=0; - _A2=0; - _A3=1; - } - break; - } - - - wait_us(motorSpeed); // wait time defines the speed - } -} - -void sMotor::clockwise() { // rotate the motor 1 step clockwise - for (int i = 7; i >= 0; i--) { - - switch (i) { - case 0: { - _A0=0; - _A1=0; - _A2=0; - _A3=1; - } - break; - case 1: { - _A0=0; - _A1=0; - _A2=1; - _A3=1; - } - break; - case 2: { - _A0=0; - _A1=0; - _A2=1; - _A3=0; - } - break; - case 3: { - _A0=0; - _A1=1; - _A2=1; - _A3=0; - } - break; - case 4: { - _A0=0; - _A1=1; - _A2=0; - _A3=0; - } - break; - case 5: { - _A0=1; - _A1=1; - _A2=0; - _A3=0; - } - break; - case 6: { - _A0=1; - _A1=0; - _A2=0; - _A3=0; - } - break; - case 7: { - _A0=1; - _A1=0; - _A2=0; - _A3=1; - } - break; - } - - - wait_us(motorSpeed); // wait time defines the speed - } -} -void sMotor::step(int num_steps, int direction, int speed) {// steper function: number of steps, direction (0- right, 1- left), speed (default 1200) - int count=0; // initalize step count - motorSpeed=speed; //set motor speed - if (direction==0) // turn clockwise - do { - clockwise(); - count++; - } while (count<num_steps); // turn number of steps applied - else if (direction==1)// turn anticlockwise - do { - anticlockwise(); - count++; - } while (count<num_steps);// turn number of steps applied - -} \ No newline at end of file
--- a/stepperMotor.h Mon Sep 23 14:32:02 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -############################################## -## Program Created by Harshavardan61 ## -############################################## - ---- harshavardan61@gmail.com ----- - -This library was made for 4-Phase Stepper Motors -I don't take any resposability for the damage caused to your equipment. - -*/ -#ifndef MBED_SMOTOR_H -#define MBED_SMOTOR_H - -#include "mbed.h" - -class sMotor { -public: - - sMotor(PinName A0, PinName A1, PinName A2, PinName A3); //motor constructor - - void step(int num_steps, int direction, int speed); - void anticlockwise(); - void clockwise(); - - -private: - - DigitalOut _A0; - DigitalOut _A1; - DigitalOut _A2; - DigitalOut _A3; - -}; - -#endif \ No newline at end of file