Engine control program with 3 engines Needs to make a case for each simultaneous engine setting, because of the WAIT after each number of bits have been sent.

Dependencies:   mbed-rtos mbed PinDetect

Fork of FinalMotorControl by Robot Bachelor

Revision:
6:ac5d277bd497
Parent:
5:fdc7a779d525
Child:
7:ba0caeb296bb
Child:
16:a3555918c025
--- a/main.cpp	Mon Apr 18 12:18:06 2016 +0000
+++ b/main.cpp	Wed Apr 20 12:11:51 2016 +0000
@@ -10,10 +10,10 @@
 DigitalOut IN3(A2);
 DigitalOut IN4(A3);
 //Second engine
-DigitalOut IN5(D2);
-DigitalOut IN6(D3);
-DigitalOut IN7(D4);
-DigitalOut IN8(D5);
+DigitalOut IN5(D3);
+DigitalOut IN6(D4);
+DigitalOut IN7(D5);
+DigitalOut IN8(D6);
 
 
 static int fart = 1000;
@@ -23,51 +23,96 @@
 
 void step4Right()
 {
+    //engine 1
     IN1=0;
     IN2=1;
     IN3=0;
     IN4=1;
+    //engine 2
+    IN5=0;
+    IN6=1;
+    IN7=0;
+    IN8=1;
     wait_us(fart); //legg som global variabel "fart" 
+    //engine 1
     IN1=0;
     IN2=1;
     IN3=1;
     IN4=0;
+    //engine 2
+    IN5=0;
+    IN6=1;
+    IN7=1;
+    IN8=0;
     wait_us(fart);
+    //engine 1
     IN1=1;
     IN2=0;
     IN3=1;
     IN4=0;
+    //engine 2
+    IN5=1;
+    IN6=0;
+    IN7=1;
+    IN8=0;
     wait_us(fart);
+    //engine 1
     IN1=1;
     IN2=0;
     IN3=0;
     IN4=1;
+    //engine 2
+    IN5=1;
+    IN6=0;
+    IN7=0;
+    IN8=1;
     wait_us(fart);
 }
 void step4Left()
 {
+    //engine 1
     IN1=1;
     IN2=0;
     IN3=0;
     IN4=1;
+    //engine 2
+    IN5=1;
+    IN6=0;
+    IN7=0;
+    IN8=1;
     wait_us(fart);
-
+    //engine 1
     IN1=1;
     IN2=0;
     IN3=1;
     IN4=0;
+    //engine 2
+    IN5=1;
+    IN6=0;
+    IN7=1;
+    IN8=0;
     wait_us(fart);
-
+    //engine 1
     IN1=0;
     IN2=1;
     IN3=1;
     IN4=0;
+    //engine 2
+    IN5=0;
+    IN6=1;
+    IN7=1;
+    IN8=0;
     wait_us(fart);
-
+    //engine 1
     IN1=0;
     IN2=1;
     IN3=0;
     IN4=1;
+    //engine 2
+    IN5=0;
+    IN6=1;
+    IN7=0;
+    IN8=1;
     wait_us(fart);
 }
 
@@ -116,16 +161,13 @@
             {
                 fart = 1000;
                 //global_direction = '1';
-                step4Right();
-               // steps = steps + step;
-                //printf("%i", &steps);
-                //printf("RIGHT \n"); 
-                
+                step4Right(); 
             } 
                 else
             {
                 //global_direction = 'x';
             }
+            
             if (m_cmd == 'a')
             {
                 fart =  2000;
@@ -147,10 +189,10 @@
             }
             else if (m_cmd == 'k')
             {
-                int steps = 485;
+                int steps = 242;
                 
                 
-                //Steps = 485 gives a 120' rotation to the left. 
+                //Steps = 242 gives a 60' rotation to the left. 
                 while (steps >= 0)
                 {
                     step4Left();
@@ -160,8 +202,8 @@
             }
             else if (m_cmd == 'l')
             {
-                int steps = 485;
-                //Steps = 485 gives a 120' rotation to the right. 
+                int steps = 242;
+                //Steps = 242 gives a 60' rotation to the right. 
                 while (steps >= 0)
                 {
                     step4Right();