Test
Revision 0:151100d6a376, committed 2021-01-11
- Comitter:
- fermedicius
- Date:
- Mon Jan 11 10:52:25 2021 +0000
- Commit message:
- Hello
Changed in this revision
FermeCantileverMotor.cpp | Show annotated file Show diff for this revision Revisions of this file |
FermeCantileverMotor.h | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FermeCantileverMotor.cpp Mon Jan 11 10:52:25 2021 +0000 @@ -0,0 +1,226 @@ +#include "FermeCantileverMotor.h" + +#include "mbed.h" + +int CantilevermotorSpeed; // Steper speed + +cantileverMotor::cantileverMotor(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 cantileverMotor::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=1; + _A3=0; + } + break; + case 1: { + _A0=0; + _A1=0; + _A2=0; + _A3=0; + } + break; + case 2: { + _A0=0; + _A1=0; + _A2=0; + _A3=1; + } + break; + case 3: { + _A0=0; + _A1=1; + _A2=0; + _A3=1; + } + break; + case 4: { + _A0=0; + _A1=1; + _A2=1; + _A3=1; + } + break; + case 5: { + _A0=1; + _A1=1; + _A2=1; + _A3=1; + } + break; + case 6: { + _A0=1; + _A1=0; + _A2=1; + _A3=1; + } + break; + case 7: { + _A0=1; + _A1=0; + _A2=1; + _A3=0; + } + break; + } + + + wait_us(CantilevermotorSpeed); // wait time defines the speed + } +} + +void cantileverMotor::clockwise() { // rotate the motor 1 step clockwise + for (int i = 7; i>= 0; i--) { + + switch (i) { + case 0: { + _A0=0; + _A1=0; + _A2=1; + _A3=0; + } + break; + case 1: { + _A0=0; + _A1=0; + _A2=0; + _A3=0; + } + break; + case 2: { + _A0=0; + _A1=0; + _A2=0; + _A3=1; + } + break; + case 3: { + _A0=0; + _A1=1; + _A2=0; + _A3=1; + } + break; + case 4: { + _A0=0; + _A1=1; + _A2=1; + _A3=1; + } + break; + case 5: { + _A0=1; + _A1=1; + _A2=1; + _A3=1; + } + break; + case 6: { + _A0=1; + _A1=0; + _A2=1; + _A3=1; + } + break; + case 7: { + _A0=1; + _A1=0; + _A2=1; + _A3=0; + } + break; + + /* 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(CantilevermotorSpeed); // wait time defines the speed + } +} +void cantileverMotor::cantileverstep(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 + + CantilevermotorSpeed=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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FermeCantileverMotor.h Mon Jan 11 10:52:25 2021 +0000 @@ -0,0 +1,30 @@ +/* This library is created for Cantilever Stepper for Juice Works. It specifically applies when the Stepper Motor is run using + Lead Shine DM542 stepper driver. Here in the CantileverStepper.cpp file the switching of 4 coils are doone similarily in + clockwise() and anticlockwise() functions. + For further enquiry you may contact to Arunav Sahay at arunav.f5@gmail.com +*/ + +#ifndef FERMECANTILEVERMOTOR_H //FermeCantileverMotor.h +#define FERMECANTI LEVERMOTOR_H //FermeCantileverMotor.h + +#include "mbed.h" + +class cantileverMotor { +public: + cantileverMotor(PinName A0,PinName A1, PinName A2, PinName A3); //motor constructor + + void cantileverstep(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