基于XC2267M的仪表盘步进电机控制
时间:12-08
来源:互联网
点击:
4 主函数详解
首先判断指针是否需要转动,如果否,直接跳到结束,等待新一轮判断。如果判定结果为需要转动,继续判断上一步是正向还是反向运动。

图2 主函数流程图
若判定结果为正向运动,进入正向运动模块,继续判断当前位置和目标位置是否一致。
如果目标位置和当前位置一致,则表明指针已到达指定位置,此时进入防抖模块,并将Move-time 置为1。
如果目标位置和当前位置不一致,则要进一步判断目标位置是否大于当前位置。如果目标位置小于当前位置,则表明在步进电机的正向运动中检测到反向运动的请求。此时,进入反向运动需求相应模块,逐渐减小步进电机转速,最后改变步进电机运行方向标志位。
如果目标位置大于当前位置,则表示运动需求仍为正向,此时需要判断目标位置和当前位置之差的大小。如果位置差很大,而步进电机转速没有到达最大,则提速;如果转速已达到最大,则保持该速度。如果位置差小于某一特定值,则进入减速状态。
5中断函数详解
首先判断指针是否需要转动,如果是,表明上次转动尚未完成,直接跳出中断,等待下一次中断。如果判定结果为不要转动,继续判断上一步是正向还是反向运动。

图3 中断函数流程图
若判定结果为正向,则继续进行下一步判断:目标位置和当前位置是否一致。结果为反向则进入反向运动中断处理模块,流程结果类似。
判断转动一步标志位是否为1。若为1,依据当前位置从PWM数组里赋新值给PWM寄存器,步进电机行动一步,当前位置前进一步(若为反向则退后一步)并清零转动一步标志位。这样下次进入中断时,若转动一步标志位没有在主循环里重新赋值为1,步进电机就不会再次转动。
每次进入中断,当Move_time不为0时,Move_time减1,直至减为0为止。
实验结果
经过巴特沃斯二阶低通滤波后,步进电机两相电压波形都为比较平滑的正弦波,波形相位差为120°,与理论的细分波形相吻合。
步进电机从位置A移动到位置B的过程中,先加速(如果AB距离足够大,步进电机将加速到最大转速后匀速运行)。在接近位置B时,步进电机将减速,最后停止在位置B。从上图可以看出,加速阶段正选的波长逐渐变窄,减速时则逐渐变宽。

图4 步进电机匀速运转两相电压图

图5 步进电机加速状态单相电压示意图

图6 步进电机减速状态单相电压示意图
结论
利用单片机可方便的对步进电机的速度和位置进行控制,可靠地实现各种步进电机的操作,完成各种复杂工作。这里提出的步进电机分步控制方法,依靠Infineon最新的XC2267M单片机CC2模块强大的16个PWM输出通道,同时驱动4个步进电机,成功通过软件编程代替驱动芯片实现仪表盘步进电机的细分控制,运行结果稳定可靠,并节省了外部设备,降低了成本。
首先判断指针是否需要转动,如果否,直接跳到结束,等待新一轮判断。如果判定结果为需要转动,继续判断上一步是正向还是反向运动。

图2 主函数流程图
若判定结果为正向运动,进入正向运动模块,继续判断当前位置和目标位置是否一致。
如果目标位置和当前位置一致,则表明指针已到达指定位置,此时进入防抖模块,并将Move-time 置为1。
如果目标位置和当前位置不一致,则要进一步判断目标位置是否大于当前位置。如果目标位置小于当前位置,则表明在步进电机的正向运动中检测到反向运动的请求。此时,进入反向运动需求相应模块,逐渐减小步进电机转速,最后改变步进电机运行方向标志位。
如果目标位置大于当前位置,则表示运动需求仍为正向,此时需要判断目标位置和当前位置之差的大小。如果位置差很大,而步进电机转速没有到达最大,则提速;如果转速已达到最大,则保持该速度。如果位置差小于某一特定值,则进入减速状态。
5中断函数详解
首先判断指针是否需要转动,如果是,表明上次转动尚未完成,直接跳出中断,等待下一次中断。如果判定结果为不要转动,继续判断上一步是正向还是反向运动。

图3 中断函数流程图
若判定结果为正向,则继续进行下一步判断:目标位置和当前位置是否一致。结果为反向则进入反向运动中断处理模块,流程结果类似。
判断转动一步标志位是否为1。若为1,依据当前位置从PWM数组里赋新值给PWM寄存器,步进电机行动一步,当前位置前进一步(若为反向则退后一步)并清零转动一步标志位。这样下次进入中断时,若转动一步标志位没有在主循环里重新赋值为1,步进电机就不会再次转动。
每次进入中断,当Move_time不为0时,Move_time减1,直至减为0为止。
实验结果
经过巴特沃斯二阶低通滤波后,步进电机两相电压波形都为比较平滑的正弦波,波形相位差为120°,与理论的细分波形相吻合。
步进电机从位置A移动到位置B的过程中,先加速(如果AB距离足够大,步进电机将加速到最大转速后匀速运行)。在接近位置B时,步进电机将减速,最后停止在位置B。从上图可以看出,加速阶段正选的波长逐渐变窄,减速时则逐渐变宽。

图4 步进电机匀速运转两相电压图

图5 步进电机加速状态单相电压示意图

图6 步进电机减速状态单相电压示意图
结论
利用单片机可方便的对步进电机的速度和位置进行控制,可靠地实现各种步进电机的操作,完成各种复杂工作。这里提出的步进电机分步控制方法,依靠Infineon最新的XC2267M单片机CC2模块强大的16个PWM输出通道,同时驱动4个步进电机,成功通过软件编程代替驱动芯片实现仪表盘步进电机的细分控制,运行结果稳定可靠,并节省了外部设备,降低了成本。
电子 步进电机 电动机 PWM 单片机 电路 电压 振荡器 CMOS EMC 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 航天器DC/DC变换器的可靠性设计(02-12)
- 我国科学家人脸与笔迹识别领域获突破(04-29)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
