Scheda motori funzionante (demostep)

Dependencies:   X_NUCLEO_IHM12A1 mbed

Fork of SchedamotoriIHM12A1 by Duckiebot

Revision:
6:b5d006c1eb59
Parent:
5:21a4085d2057
--- a/main.cpp	Wed Feb 15 11:09:44 2017 +0000
+++ b/main.cpp	Fri Feb 24 16:13:24 2017 +0000
@@ -1,24 +1,19 @@
 #include "mbed.h"
 #include "stspin240_250_class.h"
-
-/* Initialization parameters of the motor connected to the expansion board. */
+Serial pc(USBTX, USBRX);
  Stspin240_250_Init_t initDeviceParameters =
  {
-  20000, /* Frequency of PWM of Input Bridge A in Hz up to 100000Hz             */
-  20000, /* Frequency of PWM of Input Bridge B in Hz up to 100000Hz             */
-  20000, /* Frequency of PWM used for Ref pin in Hz up to 100000Hz              */
-  50,    /* Duty cycle of PWM used for Ref pin (from 0 to 100)                  */
-  TRUE   /* Dual Bridge configuration  (FALSE for mono, TRUE for dual brush dc) */
+  20000, 
+  20000, 
+  20000, 
+  50,    
+  TRUE   
  };
-
-/* Motor Control Component. */
 STSPIN240_250 *motor;
 
 int main()
 {
   uint8_t demoStep = 0;
-
-  /* Initializing Motor Control Component. */
   #if (defined TARGET_NUCLEO_F030R8)||(defined TARGET_NUCLEO_F334R8)
   motor = new STSPIN240_250(D2, D9, D6, D7, D5, D4, A2);
   #elif (defined TARGET_NUCLEO_L152RE)
@@ -27,21 +22,10 @@
   motor = new STSPIN240_250(D2, D9, D6, D7, D5, D4, A0);
   #endif
   if (motor->Init(&initDeviceParameters) != COMPONENT_OK) exit(EXIT_FAILURE);
-
-  /* Set dual bridge enabled as two motors are used*/
   motor->SetDualFullBridgeConfig(1);
-
-
-  /* Set PWM Frequency of Ref to 15000 Hz */ 
-  motor->SetRefPwmFreq(0, 15000); 
-
-  /* Set PWM duty cycle of Ref to 60% */ 
-  motor->SetRefPwmDc(0, 60); 
-  
-  /* Set PWM Frequency of bridge A inputs to 10000 Hz */ 
+  motor->SetRefPwmFreq(0, 15000);
+  motor->SetRefPwmDc(0, 60);  
   motor->SetBridgeInputPwmFreq(0,10000); 
-  
-  /* Set PWM Frequency of bridge B inputs to 10000 Hz */ 
   motor->SetBridgeInputPwmFreq(1,10000); 
   
   while (1)
@@ -49,57 +33,38 @@
     switch (demoStep)
     {  
         case 0:
-          /* Set speed of motor 0 to 100 % */
-          motor->SetSpeed(0,50);
-          motor->SetSpeed(1,50); 
-          /* start motor 0 to run forward*/
-          /* if chip is in standby mode */
-          /* it is automatically awakened */
-          motor->Run(0, BDCMotor::FWD);
-          motor->Run(1, BDCMotor::FWD);
-          break;
-                  case 1:
-                  /* Set speed of motor 0 to 100 % */
-                motor->SetSpeed(0,50);
-                motor->SetSpeed(1,50); 
-                /* start motor 0 to run forward*/
-                /* if chip is in standby mode */
-                /* it is automatically awakened */
-                motor->Run(0, BDCMotor::BWD);
-                motor->Run(1, BDCMotor::BWD);
-                break;
-                   case 2:
-                  /* Set speed of motor 0 to 100 % */
-                motor->SetSpeed(0,32);
-                motor->SetSpeed(1,25); 
-                /* start motor 0 to run forward*/
-                /* if chip is in standby mode */
-                /* it is automatically awakened */
-                motor->Run(0, BDCMotor::BWD);
-                motor->Run(1, BDCMotor::BWD);
-                break;
-                    case 3:
-                  /* Set speed of motor 0 to 100 % */
-                motor->SetSpeed(0,25);
-                motor->SetSpeed(1,40); 
-                /* start motor 0 to run forward*/
-                /* if chip is in standby mode */
-                /* it is automatically awakened */
-                motor->Run(0, BDCMotor::BWD);
-                motor->Run(1, BDCMotor::BWD);
-                break;
-          
-          
-            
-                 
-    }
-  
-    /* Wait for 5 seconds */  
-    wait_ms(5000);
-    
-    /* Increment demostep*/  
+            /* Va avanti */
+            motor->SetSpeed(0,50);
+            motor->SetSpeed(1,50); 
+            motor->Run(0, BDCMotor::FWD);
+            motor->Run(1, BDCMotor::FWD);
+            break;
+        case 1:
+            /* Va a destra */
+            motor->SetSpeed(0,47);
+            motor->SetSpeed(1,23); 
+            motor->Run(0, BDCMotor::FWD);
+            motor->Run(1, BDCMotor::FWD);
+
+            break;
+         case 2:
+            /* Va indietro */
+            motor->SetSpeed(0,50);
+            motor->SetSpeed(1,50); 
+            motor->Run(0, BDCMotor::BWD);
+            motor->Run(1, BDCMotor::BWD);
+            break;
+        case 3:
+            /* Va a sinistra */
+            motor->SetSpeed(0,25);
+            motor->SetSpeed(1,30); 
+            motor->Run(0, BDCMotor::FWD);
+            motor->Run(1, BDCMotor::FWD);
+            break;  
+    } 
+    wait_ms(4500);
     demoStep++;
-    if (demoStep > 12)
+    if (demoStep > 3)
     {
       demoStep = 0;
     }