本帖最后由 ZRYBLOG 于 2021-5-21 14:59 编辑
遇到了难题
F103VB控制8路步进电机.
这八路步进电机运动需要精确脉冲数,并且各自分开加减速.
但是如果相邻两个步进电机通向一起运转时,需要发出的脉冲是同步的.并且抖动不能明显.
运行速度在5~220转/分钟
目前我的实现思路是,用一个定时器固定40khz中断频率,电机2细分,然后每个电机都有一个变量来记录分频值.
比如分频值是1则每次进入中断都会反转一次,2则进入两次中断后会反转一次IO.用这个分频值来实现电机的脉冲变频.
但是这个方法有一个问题,在超过90转以后,每减小一个分频值的速度变化都过大了.
速度的变化过大,导致呈现出来的抖动十分明显.
具体的曲线如下,因为那个分频值只能是整数,所以出来的转速无法和曲线里面是连续的,而是速度越快,差距越大的一个个点
想要改善这个问题,需要降低细分然后再进一步提高定时器中断频率,但是除了控制电机外还有频繁的按键,光眼传感器和串口通讯. 进一步降低到无细分导致抖动更加明显,而进一步提高定时器频率 导致按键和传感器响应都变慢了.
现在卡在了这个地方.
不知道论坛里的大神每还有没有其他更好的方法. |