Test

Files at this revision

API Documentation at this revision

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