Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BipoarStepperMotor by
Revision 6:84c5df74391b, committed 2015-02-03
- Comitter:
- InBrewJ
- Date:
- Tue Feb 03 03:44:45 2015 +0000
- Parent:
- 5:f9404f00deda
- Commit message:
- changed the names to "lsMotor.h" etc - for "Linear Stepper Motor"
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lsMotor.cpp Tue Feb 03 03:44:45 2015 +0000
@@ -0,0 +1,139 @@
+/*
+##############################################
+## Program Created by Harshavardan61 ##
+##############################################
+ ---- harshavardan61@gmail.com -----
+
+Extended by Jason Brewer 2015
+
+*/
+
+#include "lsMotor.h"
+#include "mbed.h"
+
+lsMotor::lsMotor(PinName A0, PinName A1, PinName A2, PinName A3, PinName motorEnable, const int maxSteps) : _A0(A0), _A1(A1),
+ _A2(A2), _A3(A3), _motorEnable(motorEnable) {
+ _A0=0;
+ _A1=0;
+ _A2=0;
+ _A3=0;
+ _motorEnable = 0;
+ _maxSteps = maxSteps;
+ _motorPosition = maxSteps;
+}
+
+//UP
+void lsMotor::up(int num_steps) { // rotate the motor num_steps UP
+ short subStep = 0;
+ //printf("In UP\n");
+ for (int i = 0; i < num_steps && _motorPosition < _maxSteps; i++) {
+ //printf("numsteps: %d Doing UP %d pos: %d\n", num_steps, i, _motorPosition);
+ switch (subStep) { // 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;
+ }
+
+ subStep++;
+ subStep %= 4;
+ _motorPosition++;
+ wait_ms(_motorSpeed);
+ }
+ /*_A0=0;
+ _A1=0;
+ _A2=0;
+ _A3=0;*/
+ return;
+}
+
+// DOWN
+void lsMotor::down(int num_steps) { // rotate the motor num_steps DOWN
+ short subStep = 0;
+ //printf("In DOWN\n");
+ for (int i = 0; i < num_steps && _motorPosition > 0; i++) {
+ //printf("numsteps: %d Doing DOWN %d pos: %d\n", num_steps, i, _motorPosition);
+ switch (subStep) {
+ 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;
+ }
+
+ subStep++;
+ subStep %= 4;
+ _motorPosition--;
+ wait_ms(_motorSpeed); // wait time defines the speed
+ }
+ /*_A0=0;
+ _A1=0;
+ _A2=0;
+ _A3=0;*/
+ return;
+}
+
+void lsMotor::setMotorPosition(int position) {
+ _motorPosition = position;
+ return;
+}
+
+void lsMotor::step(int num_steps, int direction, int speed) {// steper function: number of steps, direction (0- down, 1- up), speed in ms
+ _motorSpeed = speed; //set motor speed
+ if (!direction){ // shaft DOWN
+ _motorEnable = 1;
+ down(num_steps);
+ _motorEnable = 0;
+ }else if (direction){// Shaft UP
+ _motorEnable = 1;
+ up(num_steps);
+ _motorEnable = 0;
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lsMotor.h Tue Feb 03 03:44:45 2015 +0000
@@ -0,0 +1,45 @@
+/*
+##############################################
+##Original Program Created by Harshavardan61##
+##############################################
+ ---- harshavardan61@gmail.com -----
+Extended by Jason Brewer 2015
+to adapt to the stepper motor + linear actuator
+supplied by Selim Yilmaz
+
+Now includes functional stepper pulses, a motor enable pin
+(motor and l293D were getting very warm if the enable pin was
+always HIGH)
+
+*/
+#ifndef MBED_LSMOTOR_H
+#define MBED_LSMOTOR_H
+
+#include "mbed.h"
+
+class lsMotor {
+public:
+
+ lsMotor(PinName A0, PinName A1, PinName A2, PinName A3, PinName motorEnable, const int maxSteps); //motor constructor
+
+ void setMotorPosition(int position); // for use ONLY if the stepper init is skipped
+ int getMotorPosition(void){ return _motorPosition; };
+ void step(int num_steps, int direction, int speed);
+ void up(int num_steps);
+ void down(int num_steps);
+
+
+private:
+
+ DigitalOut _A0;
+ DigitalOut _A1;
+ DigitalOut _A2;
+ DigitalOut _A3;
+ DigitalOut _motorEnable;
+ int _motorPosition;
+ int _maxSteps;
+ int _motorSpeed;
+
+};
+
+#endif
\ No newline at end of file
--- a/sMotor.cpp Tue Feb 03 03:41:10 2015 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
-##############################################
-## Program Created by Harshavardan61 ##
-##############################################
- ---- harshavardan61@gmail.com -----
-
-Extended by Jason Brewer 2015
-
-*/
-
-#include "sMotor.h"
-#include "mbed.h"
-
-sMotor::sMotor(PinName A0, PinName A1, PinName A2, PinName A3, PinName motorEnable, const int maxSteps) : _A0(A0), _A1(A1),
- _A2(A2), _A3(A3), _motorEnable(motorEnable) {
- _A0=0;
- _A1=0;
- _A2=0;
- _A3=0;
- _motorEnable = 0;
- _maxSteps = maxSteps;
- _motorPosition = maxSteps;
-}
-
-//UP
-void sMotor::up(int num_steps) { // rotate the motor num_steps UP
- short subStep = 0;
- //printf("In UP\n");
- for (int i = 0; i < num_steps && _motorPosition < _maxSteps; i++) {
- //printf("numsteps: %d Doing UP %d pos: %d\n", num_steps, i, _motorPosition);
- switch (subStep) { // 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;
- }
-
- subStep++;
- subStep %= 4;
- _motorPosition++;
- wait_ms(_motorSpeed);
- }
- /*_A0=0;
- _A1=0;
- _A2=0;
- _A3=0;*/
- return;
-}
-
-// DOWN
-void sMotor::down(int num_steps) { // rotate the motor num_steps DOWN
- short subStep = 0;
- //printf("In DOWN\n");
- for (int i = 0; i < num_steps && _motorPosition > 0; i++) {
- //printf("numsteps: %d Doing DOWN %d pos: %d\n", num_steps, i, _motorPosition);
- switch (subStep) {
- 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;
- }
-
- subStep++;
- subStep %= 4;
- _motorPosition--;
- wait_ms(_motorSpeed); // wait time defines the speed
- }
- /*_A0=0;
- _A1=0;
- _A2=0;
- _A3=0;*/
- return;
-}
-
-void sMotor::setMotorPosition(int position) {
- _motorPosition = position;
- return;
-}
-
-void sMotor::step(int num_steps, int direction, int speed) {// steper function: number of steps, direction (0- down, 1- up), speed in ms
- _motorSpeed = speed; //set motor speed
- if (!direction){ // shaft DOWN
- _motorEnable = 1;
- down(num_steps);
- _motorEnable = 0;
- }else if (direction){// Shaft UP
- _motorEnable = 1;
- up(num_steps);
- _motorEnable = 0;
- }
-}
\ No newline at end of file
--- a/sMotor.h Tue Feb 03 03:41:10 2015 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-##############################################
-##Original Program Created by Harshavardan61##
-##############################################
- ---- harshavardan61@gmail.com -----
-Extended by Jason Brewer 2015
-to adapt to the stepper motor + linear actuator
-supplied by Selim Yilmaz
-
-Now includes functional stepper pulses, a motor enable pin
-(motor and l293D were getting very warm if the enable pin was
-always HIGH)
-
-*/
-#ifndef MBED_SMOTOR_H
-#define MBED_SMOTOR_H
-
-#include "mbed.h"
-
-class sMotor {
-public:
-
- sMotor(PinName A0, PinName A1, PinName A2, PinName A3, PinName motorEnable, const int maxSteps); //motor constructor
-
- void setMotorPosition(int position); // for use ONLY if the stepper init is skipped
- int getMotorPosition(void){ return _motorPosition; };
- void step(int num_steps, int direction, int speed);
- void up(int num_steps);
- void down(int num_steps);
-
-
-private:
-
- DigitalOut _A0;
- DigitalOut _A1;
- DigitalOut _A2;
- DigitalOut _A3;
- DigitalOut _motorEnable;
- int _motorPosition;
- int _maxSteps;
- int _motorSpeed;
-
-};
-
-#endif
\ No newline at end of file
