各位朋友大家好:
最近使用步进电机的时候遇到一个问题,当我需要步进电机持续运动时,现有的控制指令(如m 1000)只能按照指令中的参数运动1000步,如果我在电机运动过程中发送其它指令,程序必须在当前指令运行结束之后才能运行其他指令。
我现在需要设计一个方法,当我发送一个电机正转指令(如m+,或者 run+)之后,电机可以一直正向转动,直到地老天荒海枯石烂;当电机在持续正转时,若我在串口助手中发送了其它指令(如停止指令stp,反转指令m-或者run-),电机能立即结束当前动作,立即执行最新指令。
我先说说我的方法,让电机持续正转的方法没想到;
让电机停止,可以使用使能端控制,当驱动器处于禁止使能时,不输出驱动电流,电机无法运动,但是在单片机里面,PWM端口还在持续输出脉冲控制,若是此时对寄存器操作(比如 TIMx.CCR1 = 0,定时器输出占空比为0的信号;)令输出脉冲占空比为0,单片机会在上次脉冲指令输出完后才会为0(不知为何不能插队)。
请教各位朋友有没有其它方法或着建议,欢迎讨论。
谢谢
|