Scheda motori funzionante (demostep)
Dependencies: X_NUCLEO_IHM12A1 mbed
Fork of SchedamotoriIHM12A1 by
main.cpp
- Committer:
- gandhi1
- Date:
- 2017-02-24
- Revision:
- 6:b5d006c1eb59
- Parent:
- 5:21a4085d2057
File content as of revision 6:b5d006c1eb59:
#include "mbed.h"
#include "stspin240_250_class.h"
Serial pc(USBTX, USBRX);
Stspin240_250_Init_t initDeviceParameters =
{
20000,
20000,
20000,
50,
TRUE
};
STSPIN240_250 *motor;
int main()
{
uint8_t demoStep = 0;
#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)
motor = new STSPIN240_250(D2, D9, D6, D7, D5, D4, A3);
#else
motor = new STSPIN240_250(D2, D9, D6, D7, D5, D4, A0);
#endif
if (motor->Init(&initDeviceParameters) != COMPONENT_OK) exit(EXIT_FAILURE);
motor->SetDualFullBridgeConfig(1);
motor->SetRefPwmFreq(0, 15000);
motor->SetRefPwmDc(0, 60);
motor->SetBridgeInputPwmFreq(0,10000);
motor->SetBridgeInputPwmFreq(1,10000);
while (1)
{
switch (demoStep)
{
case 0:
/* 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 > 3)
{
demoStep = 0;
}
}
}
