Test application for the STMicroelectronics X-NUCLEO-IHM01A1 Stepper Motor Control Expansion Board.

Dependencies:   X_NUCLEO_IHM01A1

Fork of MotorControl_IHM01A1 by ST

Motor Control with the X-NUCLEO-IHM01A1 Expansion Board

This application provides a more complex example of usage of the X-NUCLEO-IHM01A1 Stepper Motor Control Expansion Board.
It shows how to use one stepper motor connected to the board, with an example of ISR and error handler, as well as an almost complete coverage of the available APIs, e.g.:

  • moving the rotor to a specific position;
  • moving the rotor for a certain amount of time;
  • setting the speed value;
  • setting the direction of rotation;
  • changing the stepper motor mode;
  • soft/hard stopping the rotor;
  • powering off the power bridge.

Files at this revision

API Documentation at this revision

Comitter:
Davidroid
Date:
Wed Nov 18 19:13:32 2015 +0000
Parent:
2:d956260240b0
Child:
4:43df256f26d9
Commit message:
+ Program updated to reflect the modifications to the "StepperMotor" abstract class.

Changed in this revision

X_NUCLEO_IHM01A1.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/X_NUCLEO_IHM01A1.lib	Fri Nov 13 13:00:23 2015 +0000
+++ b/X_NUCLEO_IHM01A1.lib	Wed Nov 18 19:13:32 2015 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/teams/ST-Expansion-SW-Team/code/X_NUCLEO_IHM01A1/#83a1eb397a65
+https://developer.mbed.org/teams/ST-Expansion-SW-Team/code/X_NUCLEO_IHM01A1/#d3c78f12a78d
--- a/main.cpp	Fri Nov 13 13:00:23 2015 +0000
+++ b/main.cpp	Wed Nov 18 19:13:32 2015 +0000
@@ -82,7 +82,7 @@
         printf("--> Moving forward 16000 steps.\r\n");
 
         /* Moving 16000 steps in the forward direction. */
-        motor->Move(StepperMotor::CW, 16000);
+        motor->Move(StepperMotor::FWD, 16000);
         
         /* Waiting while the motor is active. */
         motor->WaitWhileActive();
@@ -97,11 +97,14 @@
         printf("--> Moving backward 16000 steps.\r\n");
         
         /* Moving 16000 steps in the backward direction. */
-        motor->Move(StepperMotor::CCW, 16000);
+        motor->Move(StepperMotor::BWD, 16000);
 
         /* Waiting while the motor is active. */
         motor->WaitWhileActive();
 
+        /* Printing to the console. */
+        printf("--> Setting Home.\r\n");
+
         /* Setting the current position to be the home position. */
         motor->SetHome();
   
@@ -126,6 +129,9 @@
         /* Printing to the console. */
         printf("    Position: %d.\r\n", position);
         
+        /* Printing to the console. */
+        printf("--> Setting a mark.\r\n");
+
         /* Setting the current position to be the mark position. */
         motor->SetMark();
 
@@ -178,7 +184,7 @@
         /*----- Going to mark which was set previously after going to -6400. -----*/
 
         /* Printing to the console. */
-        printf("--> Going to mark which was set previously after going to -6400.\r\n");
+        printf("--> Going to the mark set previously.\r\n");
         
         /* Requesting to go to mark position. */
         motor->GoMark();  
@@ -196,13 +202,13 @@
         wait_ms(2000);
 
 
-        /*----- Moving backward. -----*/
+        /*----- Running backward. -----*/
 
         /* Printing to the console. */
-        printf("--> Moving backward.\r\n");
+        printf("--> Running backward.\r\n");
 
         /* Requesting to run backward. */
-        motor->Run(StepperMotor::CCW);
+        motor->Run(StepperMotor::BWD);
 
         /* Waiting until delay has expired. */
         wait_ms(5000);
@@ -298,10 +304,10 @@
         printf("    Speed: %d.\r\n", speed);
 
 
-        /*----- Requiring soft-stop while running. -----*/
+        /*----- Requesting soft-stop while running. -----*/
 
         /* Printing to the console. */
-        printf("--> Requiring soft-stop while running.\r\n");
+        printf("--> Requesting soft-stop while running.\r\n");
 
         /* Requesting soft stop. */
         motor->SoftStop();
@@ -313,17 +319,20 @@
         wait_ms(2000);
 
 
-        /*----- Requiring hard-stop while running. -----*/
+        /*----- Requesting hard-stop while running. -----*/
 
         /* Printing to the console. */
-        printf("--> Requiring hard-stop while running.\r\n");
-
+        printf("--> Running forward.\r\n");
+        
         /* Requesting to run in forward direction. */
-        motor->Run(StepperMotor::CW);
+        motor->Run(StepperMotor::FWD);
 
         /* Waiting until delay has expired. */
         wait_ms(5000);
-        
+
+        /* Printing to the console. */
+        printf("--> Requesting hard-stop while running.\r\n");
+
         /* Requesting to immediatly stop. */
         motor->HardStop();
 
@@ -337,14 +346,17 @@
         /*----- GOTO stopped by soft-stop. -----*/
 
         /* Printing to the console. */
-        printf("--> GOTO stopped by soft-stop.\r\n");
-
+        printf("--> Going to position 20000.\r\n");
+        
         /* Requesting to go to a specified position. */
         motor->GoTo(20000);  
         
         /* Waiting while the motor is active. */
         wait_ms(5000);
 
+        /* Printing to the console. */
+        printf("--> Requiring soft-stop while running.\r\n");
+
         /* Requesting to perform a soft stop */
         motor->SoftStop();