hello
Dependencies: X_NUCLEO_IHM01A1
Fork of HelloWorld_IHM01A1_2Motors_mbedOS by
Revision 32:9fe53ea8430c, committed 2018-03-28
- Comitter:
- gianlucamgf
- Date:
- Wed Mar 28 14:52:12 2018 +0000
- Parent:
- 31:f203b17d5534
- Commit message:
- Hello Team this is the botton program
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Jul 14 15:33:04 2017 +0000
+++ b/main.cpp Wed Mar 28 14:52:12 2018 +0000
@@ -52,12 +52,12 @@
/* Definitions ---------------------------------------------------------------*/
/* Number of steps. */
-#define STEPS 3200
+#define STEPS 100
/* Delay in milliseconds. */
-#define DELAY_1 2000
-#define DELAY_2 6000
-#define DELAY_3 8000
+#define DELAY_1 100
+#define DELAY_2 3000
+#define DELAY_3 4000
/* Speed in pps (Pulses Per Second).
In Full Step mode: 1 pps = 1 step/s).
@@ -68,6 +68,8 @@
/* Variables -----------------------------------------------------------------*/
+DigitalIn mybutton(USER_BUTTON);
+bool x=true;
/* Motor Control Component. */
L6474 *motor1;
L6474 *motor2;
@@ -95,210 +97,64 @@
/* Printing to the console. */
printf("Motor Control Application Example for 2 Motors\r\n\n");
-
- /*----- Moving. -----*/
-
- /* Printing to the console. */
- printf("--> Moving forward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
+ /*----- Moving F. -----*/
+ while(true) {
+ if (mybutton == 0) // Button is pressed
+ {
+ x=!x;
+ printf("x =%d", x);
+ }
+ if (x==true) // Button is pressed
+ {
+ /* Printing to the console. */
+ printf("--> Moving forward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
- /* Moving N steps in the forward direction. */
- motor1->move(StepperMotor::FWD, STEPS >> 1);
- motor2->move(StepperMotor::FWD, STEPS);
-
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
+ /* Moving N steps in the forward direction. */
+ motor1->move(StepperMotor::FWD, STEPS >> 1);
+ motor2->move(StepperMotor::FWD, STEPS >> 1);
- /* Getting current position. */
- int position1 = motor1->get_position();
- int position2 = motor2->get_position();
+ /* Waiting while the motor is active. */
+ motor1->wait_while_active();
+ motor2->wait_while_active();
+
+ /* Getting current position. */
+ int position1 = motor1->get_position();
+ int position2 = motor2->get_position();
- /* Printing to the console. */
- printf(" Position: M1 %d, M2 %d.\r\n", position1, position2);
+ /* Printing to the console. */
+ printf(" Position: M1 %d, M2 %d.\r\n", position1, position2);
- /* Waiting 2 seconds. */
- wait_ms(DELAY_1);
-
+ /* Waiting 2 seconds. */
+ wait_ms(DELAY_1);
+ }
+ if (x==false) // Button is pressed
+ {
+ /*----- Moving B. -----*/
- /*----- Moving. -----*/
-
- /* Printing to the console. */
- printf("--> Moving backward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
+ /* Printing to the console. */
+
+ printf("--> Moving backward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
- /* Moving N steps in the backward direction. */
- motor1->move(StepperMotor::BWD, STEPS >> 1);
- motor2->move(StepperMotor::BWD, STEPS);
-
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
-
- /* Getting current position. */
- position1 = motor1->get_position();
- position2 = motor2->get_position();
-
- /* Printing to the console. */
- printf(" Position: M1 %d, M2 %d.\r\n", position1, position2);
- printf("--> Setting Home.\r\n");
-
- /* Setting the current position to be the home position. */
- motor1->set_home();
- motor2->set_home();
-
- /* Waiting 2 seconds. */
- wait_ms(DELAY_1);
-
-
- /*----- Going to a specified position. -----*/
-
- /* Printing to the console. */
- printf("--> Going to position: M1 %d, M2 %d.\r\n", STEPS, STEPS >> 1);
-
- /* Requesting to go to a specified position. */
- motor1->go_to(STEPS);
- motor2->go_to(STEPS >> 1);
+ /* Moving N steps in the backward direction. */
+ motor1->move(StepperMotor::BWD, STEPS >> 1);
+ motor2->move(StepperMotor::BWD, STEPS >> 1);
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
-
- /* Getting current position. */
- position1 = motor1->get_position();
- position2 = motor2->get_position();
-
- /* Printing to the console. */
- printf(" Position: M1 %d, M2 %d.\r\n", position1, position2);
-
- /* Waiting 2 seconds. */
- wait_ms(DELAY_1);
-
-
- /*----- Going Home. -----*/
+ /* Waiting while the motor is active. */
+ motor1->wait_while_active();
+ motor2->wait_while_active();
- /* Printing to the console. */
- printf("--> Going Home.\r\n");
-
- /* Requesting to go to home. */
- motor1->go_home();
- motor2->go_home();
+ /* Getting current position. */
+ int position1 = motor1->get_position();
+ int position2 = motor2->get_position();
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
-
- /* Getting current position. */
- position1 = motor1->get_position();
- position2 = motor2->get_position();
-
- /* Printing to the console. */
- printf(" Position: M1 %d, M2 %d.\r\n", position1, position2);
-
- /* Waiting 2 seconds. */
- wait_ms(DELAY_1);
+ /* Printing to the console. */
+ printf(" Position: M1 %d, M2 %d.\r\n", position1, position2);
+ printf("--> Setting Home.\r\n");
- /*----- Running. -----*/
-
- /* Printing to the console. */
- printf("--> M1 running backward, M2 running forward.\r\n");
-
- /* Requesting to run backward. */
- motor1->run(StepperMotor::BWD);
- motor2->run(StepperMotor::FWD);
-
- /* Waiting until delay has expired. */
- wait_ms(DELAY_2);
-
- /* Getting current speed. */
- int speed1 = motor1->get_speed();
- int speed2 = motor2->get_speed();
-
- /* Printing to the console. */
- printf(" Speed: M1 %d, M2 %d.\r\n", speed1, speed2);
-
- /*----- Increasing the speed while running. -----*/
-
- /* Printing to the console. */
- printf("--> Increasing the speed while running.\r\n");
-
- /* Increasing the speed. */
- motor1->set_max_speed(SPEED_1);
- motor2->set_max_speed(SPEED_1);
-
- /* Waiting until delay has expired. */
- wait_ms(DELAY_2);
-
- /* Getting current speed. */
- speed1 = motor1->get_speed();
- speed2 = motor2->get_speed();
-
- /* Printing to the console. */
- printf(" Speed: M1 %d, M2 %d.\r\n", speed1, speed2);
-
-
- /*----- Decreasing the speed while running. -----*/
-
- /* Printing to the console. */
- printf("--> Decreasing the speed while running.\r\n");
-
- /* Decreasing the speed. */
- motor1->set_max_speed(SPEED_2);
- motor2->set_max_speed(SPEED_2);
-
- /* Waiting until delay has expired. */
- wait_ms(DELAY_3);
-
- /* Getting current speed. */
- speed1 = motor1->get_speed();
- speed2 = motor2->get_speed();
-
- /* Printing to the console. */
- printf(" Speed: M1 %d, M2 %d.\r\n", speed1, speed2);
-
-
- /*----- Requiring hard-stop while running. -----*/
-
- /* Printing to the console. */
- printf("--> Requiring hard-stop while running.\r\n");
-
- /* Requesting to immediatly stop. */
- motor1->hard_stop();
- motor2->hard_stop();
-
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
-
- /* Waiting 2 seconds. */
- wait_ms(DELAY_1);
-
-
- /*----- Infinite Loop. -----*/
-
- /* Printing to the console. */
- printf("--> Infinite Loop...\r\n");
-
- /* Setting the current position to be the home position. */
- motor1->set_home();
- motor2->set_home();
-
- /* Infinite Loop. */
- while(true) {
- /* Requesting to go to a specified position. */
- motor1->go_to(STEPS >> 1);
- motor2->go_to(- (STEPS >> 1));
-
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
-
- /* Requesting to go to a specified position. */
- motor1->go_to(- (STEPS >> 1));
- motor2->go_to(STEPS >> 1);
-
- /* Waiting while the motor is active. */
- motor1->wait_while_active();
- motor2->wait_while_active();
+ /* Waiting 2 seconds. */
+ wait_ms(DELAY_1);
+ }
}
}
