野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15225|回复: 3

关于步进电机持续运动和在任意时刻改变运动状态的策略

[复制链接]
发表于 2020-3-26 08:41:36 | 显示全部楼层 |阅读模式
各位朋友大家号:
       我之前的步进电机驱动程序都是参考论坛里下载的野火版驱动程序,只是在自己使用的时候修改了定时器和单片机的引脚。最近使用步进电机的时候遇到一个问题,当我需要步进电机持续运动时,现有的控制指令(如m 1000)只能按照指令中的参数运动1000步,如果我在电机运动过程中发送其它指令,程序必须在当前指令运行结束之后才能运行其他指令。

       我现在需要设计一个方法,当我发送一个电机正转指令(如m+,或者 run+)之后,电机可以一直正向转动,直到地老天荒海枯石烂;当电机在持续正转时,若我在串口助手中发送了其它指令(如停止指令stp,反转指令m-或者run-),电机能立即结束当前动作,立即执行最新指令。

       我先说说我的方法,让电机持续正转的方法没想到;
       让电机停止,可以使用使能端控制,当驱动器处于禁止使能时,不输出驱动电流,电机无法运动,但是在单片机里面,PWM端口还在持续输出脉冲控制,若是此时对寄存器操作(比如 TIMx.CCR1 = 0;)令输出脉冲占空比为0,单片机会在上次脉冲指令输出完后才会为0(不知为何不能插队)。

   请教各位朋友有没有其它方法或着建议,欢迎讨论。

谢谢!
回复

使用道具 举报

 楼主| 发表于 2020-3-26 16:43:11 | 显示全部楼层
简而言之:
1.如何通过只发一次指令让步进电机一直转?
2.对于一直转动的步进电机,如何通过只发一次指令,让步进电机立即停止转动?
2.对于一直正转的步进电机,如何通过只发一次指令,让步进电机立即反向转动?

以上方法都要在单片机里实现,即可程控。
回复 支持 反对

使用道具 举报

发表于 2020-11-22 13:11:48 | 显示全部楼层
1:对于想要按照设定的速度一直转,可以不让他进入减速。步进电机   启动加速---匀速运行---减速停止,那么你只需要保持运行运行的状态即可,说明时候减速停止,程序中肯定有判断条件,那么座处理即可
2:步进电机不建议急停,如果急停,可以考虑直接关闭定时器通道或者关闭定时器即可;
     不过还是建议停止有减速过程
3:步进电机正传立刻反转是做不到的 ,除非你不要用算法,慢速运行,那么可以的;如果正常控制,都是有加减速的过程的,当你吧加减速的时间缩短到一定成都,就会卡机或者丢步等问题;是否考虑伺服电机
回复 支持 反对

使用道具 举报

发表于 2020-12-2 16:42:09 | 显示全部楼层
1 指令- 加速-匀速
2 加速-匀速-指令-减速
3 加速-匀速-指令-减速-反加速-匀速
按照这样控制,步进电机就只能这样跑才不会失步
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 15:13 , Processed in 0.027679 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表