我使用L6470 对电机进行驱动 但是遇到一个问题 就是 发现电机实际旋转的角度 和配置的不太一致 我做了几个速度,但是不同速度转的角度明显不对 我配置的64/1 12800 为200*64 应该是一圈 ,但是有的速度的情况下,明显不是一圈,即使感觉是一圈,正转和反转好像有不完全一样。 不知道是什么原因 下面是我的初始化配置,不知道哪里出问题了 MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ABS_POS, 0); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_EL_POS, 0); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MARK, 0); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_SPEED, 0);MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ACC, SPEED_PAR_ACC); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_DEC, SPEED_PAR_DEC); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_FAST); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MIN_SPEED, 0x0); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_FS_SPD, 0x27); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_HOLD, SPEED_KVAL_HOLD); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_RUN, SPEED_KVAL_RUN); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_ACC, SPEED_KVAL_ACC); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_KVAL_DEC, SPEED_KVAL_DEC); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_INT_SPD, SPEED_IN_SPEED); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ST_SLP, SPEED_ST_SLP); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_FN_SLP_ACC, SPEED_SLP_ACC); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_FN_SLP_DEC, SPEED_SLP_DEC); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_K_THERM, 0x0); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_OCD_TH, 0x8); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_STALL_TH, 0x5f); // MotoStep_Cmd_SetPar(ADD_MOTOSTEP_STEP_MODE, MOTOSTEP_STEP_SEL_1_2 | MOTOSTEP_SYNC_SEL_1_2); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_STEP_MODE, MOTOSTEP_STEP_SEL_1_64 | MOTOSTEP_SYNC_SEL_64); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_ALARM_EN, 0x0); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_CONFIG, 0x2E88); 下面是我设置的不同速度的代码: MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_FAST); osDelay(100); MotoStep_Cmd_Move(1,12800); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_Move(0,12800); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_HIGH); osDelay(100); MotoStep_Cmd_Move(1,12800); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_Move(0,12800); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_MIDDLE); osDelay(100); MotoStep_Cmd_Move(1,25600); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_Move(0,25600); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_SetPar(ADD_MOTOSTEP_MAX_SPEED, SPEED_MOTO_LOW); osDelay(100); MotoStep_Cmd_Move(1,25600); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); MotoStep_Cmd_Move(0,25600); osDelay(100); WAIT_MOTO_IDLE; osDelay(1000); 图片是用ST的工具生产电机参数的图片 |
1
mark,签到+1 |
没人回答么 |
单片机复位后引脚状态
HAL库,驱动步进电机不转
STM32h743ZIT6 与TMC5160进行SPI通信,在SCK结束后CSN结束前,MISO、MOSI信号电平存在缓慢下降过程的原因?
为什么stm32用蓝牙控制步进电机,刚启动时有声音,然后发信号,步进电机动不了
在官网找不到Powerstep官方板的驱动例程,在哪可以找到呢?
L6470 电机位置不准的问题
请问如何产生伺服脉冲信号?
L6470H驱动参数问题
L9942这个芯片的细分桥臂的输出波形大家有吗
求伺服电机S加速例程