2 Motores + Joystick
Dependencies: X_NUCLEO_IHM01A1 TextLCD
Fork of HelloWorld_IHM01A1_2Motors_mbedOS by
Revision 39:7e30bcc989d3, committed 2018-05-02
- Comitter:
- leogrotti
- Date:
- Wed May 02 13:39:56 2018 +0000
- Parent:
- 38:c3d77ff8168a
- Child:
- 40:0b517b49f70d
- Commit message:
- 3 motores configurados
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Apr 25 15:03:09 2018 +0000
+++ b/main.cpp Wed May 02 13:39:56 2018 +0000
@@ -69,31 +69,31 @@
/* Variables -----------------------------------------------------------------*/
/* Initialization parameters. */
-L6474_init_t init = {
- 160, /* Acceleration rate in pps^2. Range: (0..+inf). */
- 160, /* Deceleration rate in pps^2. Range: (0..+inf). */
- 4000, /* Maximum speed in pps. Range: (30..10000]. */
- 1300, /* Minimum speed in pps. Range: [30..10000). */
- 1500, /* Torque regulation current in mA. Range: 31.25mA to 4000mA. */
- L6474_OCD_TH_1875mA, /* Overcurrent threshold (OCD_TH register). */
- L6474_CONFIG_OC_SD_ENABLE, /* Overcurrent shutwdown (OC_SD field of CONFIG register). */
- L6474_CONFIG_EN_TQREG_TVAL_USED, /* Torque regulation method (EN_TQREG field of CONFIG register). */
- L6474_STEP_SEL_1_2, /* Step selection (STEP_SEL field of STEP_MODE register). */
- L6474_SYNC_SEL_1_2, /* Sync selection (SYNC_SEL field of STEP_MODE register). */
- L6474_FAST_STEP_12us, /* Fall time value (T_FAST field of T_FAST register). Range: 2us to 32us. */
- L6474_TOFF_FAST_8us, /* Maximum fast decay time (T_OFF field of T_FAST register). Range: 2us to 32us. */
- 3, /* Minimum ON time in us (TON_MIN register). Range: 0.5us to 64us. */
- 21, /* Minimum OFF time in us (TOFF_MIN register). Range: 0.5us to 64us. */
- L6474_CONFIG_TOFF_044us, /* Target Swicthing Period (field TOFF of CONFIG register). */
- L6474_CONFIG_SR_320V_us, /* Slew rate (POW_SR field of CONFIG register). */
- L6474_CONFIG_INT_16MHZ, /* Clock setting (OSC_CLK_SEL field of CONFIG register). */
- L6474_ALARM_EN_OVERCURRENT |
- L6474_ALARM_EN_THERMAL_SHUTDOWN |
- L6474_ALARM_EN_THERMAL_WARNING |
- L6474_ALARM_EN_UNDERVOLTAGE |
- L6474_ALARM_EN_SW_TURN_ON |
- L6474_ALARM_EN_WRONG_NPERF_CMD /* Alarm (ALARM_EN register). */
-};
+//L6474_init_t init = {
+// 160, /* Acceleration rate in pps^2. Range: (0..+inf). */
+// 160, /* Deceleration rate in pps^2. Range: (0..+inf). */
+// 4000, /* Maximum speed in pps. Range: (30..10000]. */
+// 1300, /* Minimum speed in pps. Range: [30..10000). */
+// 1500, /* Torque regulation current in mA. Range: 31.25mA to 4000mA. */
+// L6474_OCD_TH_1875mA, /* Overcurrent threshold (OCD_TH register). */
+// L6474_CONFIG_OC_SD_ENABLE, /* Overcurrent shutwdown (OC_SD field of CONFIG register). */
+// L6474_CONFIG_EN_TQREG_TVAL_USED, /* Torque regulation method (EN_TQREG field of CONFIG register). */
+// L6474_STEP_SEL_1_2, /* Step selection (STEP_SEL field of STEP_MODE register). */
+// L6474_SYNC_SEL_1_2, /* Sync selection (SYNC_SEL field of STEP_MODE register). */
+// L6474_FAST_STEP_12us, /* Fall time value (T_FAST field of T_FAST register). Range: 2us to 32us. */
+// L6474_TOFF_FAST_8us, /* Maximum fast decay time (T_OFF field of T_FAST register). Range: 2us to 32us. */
+// 3, /* Minimum ON time in us (TON_MIN register). Range: 0.5us to 64us. */
+// 21, /* Minimum OFF time in us (TOFF_MIN register). Range: 0.5us to 64us. */
+// L6474_CONFIG_TOFF_044us, /* Target Swicthing Period (field TOFF of CONFIG register). */
+// L6474_CONFIG_SR_320V_us, /* Slew rate (POW_SR field of CONFIG register). */
+// L6474_CONFIG_INT_16MHZ, /* Clock setting (OSC_CLK_SEL field of CONFIG register). */
+// L6474_ALARM_EN_OVERCURRENT |
+// L6474_ALARM_EN_THERMAL_SHUTDOWN |
+// L6474_ALARM_EN_THERMAL_WARNING |
+// L6474_ALARM_EN_UNDERVOLTAGE |
+// L6474_ALARM_EN_SW_TURN_ON |
+// L6474_ALARM_EN_WRONG_NPERF_CMD /* Alarm (ALARM_EN register). */
+//};
Serial pc(USBTX, USBRX);
@@ -117,7 +117,7 @@
unsigned int speed1;
unsigned int speed2;
-//unsigned int speed3;
+unsigned int speed3;
//unsigned int pos3;
@@ -125,7 +125,7 @@
/* Motor Control Component. */
L6474 *motor1;
L6474 *motor2;
-//L6474 *motor3;
+L6474 *motor3;
/* Main ----------------------------------------------------------------------*/
@@ -140,16 +140,16 @@
/* Initializing Motor Control Components. */
motor1 = new L6474(D2, D8, D7, D9, D10, dev_spi);
motor2 = new L6474(D2, D8, D4, D3, D10, dev_spi);
- // motor3 = new L6474(D2, D8, D5, D6, D10, dev_spi);
+ motor3 = new L6474(D2, D8, D5, D6, D10, dev_spi);
if (motor1->init() != COMPONENT_OK) {
exit(EXIT_FAILURE);
}
if (motor2->init() != COMPONENT_OK) {
exit(EXIT_FAILURE);
}
- // if (motor3->init() != COMPONENT_OK) {
- // exit(EXIT_FAILURE);
- // }
+ if (motor3->init() != COMPONENT_OK) {
+ exit(EXIT_FAILURE);
+ }
@@ -167,6 +167,9 @@
//motor1->set_parameter(L6474_STEP_MODE,L6474_STEP_SEL_1_2);
//motor2->set_parameter(L6474_STEP_MODE,L6474_STEP_SEL_1_2);
+
+
+
while(true) {
u = eixo_X.read();
w = eixo_Y.read();
@@ -174,12 +177,19 @@
// wait (1.5);
// pc.printf ("X: %f \r\n",u);
// pc.printf ("Y: %f \r\n",w);
+
+ motor3->run(StepperMotor::FWD);
+ // motor3->move(StepperMotor::BWD, 100);
+ //motor3->wait_while_active();
+
+ // pc.printf ("bwd");
-
if (u>0.740) {
motor1->run(StepperMotor::FWD);
+ //wait_ms(DELAY_1);
+
speed1 = motor1->get_speed();
printf("speed1 =%d \r\n\n", speed1);
@@ -189,6 +199,8 @@
else{ if(u<0.65) {
motor1->run(StepperMotor::BWD);
+ // wait_ms(DELAY_1);
+
speed1 = motor1->get_speed();
printf("speed1 =%d \r\n\n", speed1);
@@ -198,6 +210,8 @@
}
else
motor1->hard_stop();
+ // wait_ms(DELAY_1);
+
speed1 = 0;
printf("speed1 =%d \r\n\n", speed1);
