基于STM32的4轴步进电机加减速控制全套工程源码
基于STM32的4轴步进电机加减速控制全套工程源码,共有两套;一套是STM32F103的,另外一套是STM32F405的;
可以同时控制4轴步进电机进行加减速;
速率可以达到100K以上;
源码算法是基于《AVR446: Linear speed control of stepper motor》;
详细见附件压缩包中的文档,已经在实际工程中得到应用;
欢迎大家讨论并提出改进意见。
好东西要订 mark 好东西要mark 好东西,加速算法是线性的,有非线性的吗? mark一下 好东西要mark mark,学习了 必须得顶。配上电路图更好。 谢谢分享。。。
mark{:handshake:} 好资料一定要顶 楼主好人 谢谢分享,正到处找这方面资料…… 好东西。我们下面准备用STM32F207系列做电机驱动。但是我没做过电机相关的驱动。我们的设备上有5个直流电机,需要同时驱动。不知道这个移植到直流电机上行不行? 好资料,必须顶!!!! 谢谢分享 {:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:} 谢谢共享!!!!!!! 记得之前做医疗仪器时候也是用的这个算法来控制步进电机的,真心不错! 好东西要顶~ 4轴应用是什么设备啊? Mark,顶…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端 谢谢分享 good~~~
正准备做,参考一下~~~ 如果能把 数据处理不放中断里 速度 能 更快的 .. 火速先顶,在下,,,, MARK
以后慢慢学习 里面有编码器的读取吗? 谢谢你的发表! 配上电路图更好。{:lol:} 配上电路图更好。
+1 太强大了,, 好东西,顶下 学习一下 坚决 顶起来啊 那文档我看过!但未能成功移植!希望可以参考你的... 还有这个貌似是给定固定的步数,然后算出一条加减速曲线的。过程是加速》减速...
我想问能不能上次给的位置还没到达的时候,给出新的位置然后平滑过渡到新的位置? 不懂,但是感谢楼主的分享。。{:lol:} 我觉得应该将单片机的配置和步进电机的驱动程序分开写(各一个C文件) 这样更容易移植。
可读性更强 学习了,谢谢楼主 学习学习
不是太懂 但是应该不错 Thank{:handshake:} 谢谢分享 太好了,非常感谢楼主的奉献,很有价值。 mark 步进电机! 这个必须顶,真是及时雨呀,多谢楼主. 谢谢分享!! 谢谢楼主分享 不顶一下,太对不起楼主了 本帖最后由 myqiang1990 于 2013-4-19 14:58 编辑
楼主如果能做到更具目标位置动态加减速就更好了,而不是设定多少步然后就加减速直到走完这些为止,然后才能响应新的位置。跟39楼描述那要,
这份文档我研究过,而且还有AVR的源码。感觉不适合做更具目标位置进行动态加减速。
谢谢分享。。。 谢谢分享,下来参考。 很强大啊!支持 同学,这个在中断里处理的,就4个轴同时到100k的速度?400k的中断速度,加上通讯中断,加上系统中断,加上外部中断,全是中断啊!cpu还能做什么?楼主发代码前请三思! 谢谢楼主分享,学习中 精彩,好东西. 好东西,谢楼主分享。 好东西学习了,谢谢! 步进电机控制的好,不太容易啊。 谢谢楼主分享~ 难得的好东西呀, 记号,收藏 好资料,必须顶!!!! 学习,谢谢!!! 好东西,果断mark。 下来看看,应该不错 下载备用。。后期可能要用到的 myqiang1990 发表于 2013-4-19 14:54 static/image/common/back.gif
楼主如果能做到更具目标位置动态加减速就更好了,而不是设定多少步然后就加减速直到走完这些为止,然后才能 ...
同学,看过你之前的几个帖子,可以清楚地看到你在步进电机控制这方面的进展,
请问怎么才能够在楼主的基础上实现动态地调速呢?即:从一个速度-->加速/减速-->另一个速度呢?
我尝试着改了一下,发现加速还好改一点,但是减速过程比较麻烦,不知道你有没有这方面的经验呢?谢谢 当在加减速最高速时,其他任务会不会比较难执行 gallop020142 发表于 2013-5-7 16:31 static/image/common/back.gif
同学,看过你之前的几个帖子,可以清楚地看到你在步进电机控制这方面的进展,
请问怎么才能够在楼主的 ...
这份代码我没有用,不过看过一下,我也没有改过,我觉得如果做成自动跟踪目标来调速很麻烦~~~暂时没时间研究~~~你研究出来说一下思路呀!!!{:lol:} lanyuye 发表于 2013-5-7 16:34 static/image/common/back.gif
当在加减速最高速时,其他任务会不会比较难执行
楼主大的代码应该是固定8细分的,8细分做高速,对其他任务影响不是很大~~如果高细分就会~~~所以最好做成变细分~~高速低细分,低速高细分,但是我觉得如果用变细分,要在这份代码上修改, 我觉得很困难哦~~有哪位大大改出来了~~ ap0705307 发表于 2013-4-18 19:20 还有这个貌似是给定固定的步数,然后算出一条加减速曲线的。过程是加速》减速... 我想问能不能上次给的位置 ...
速度时时调整已经做好了,位置与速度时时调整正在进行中。 myqiang1990 发表于 2013-4-19 14:54 楼主如果能做到更具目标位置动态加减速就更好了,而不是设定多少步然后就加减速直到走完这些为止,然后才能 ...
根据目标位置?不知道是不是这样理解的:给定一个位置,加速时间,中间通过加速,匀速,减速到达位置后。然后再给类似的目标位置 gallop020142 发表于 2013-5-7 16:31 同学,看过你之前的几个帖子,可以清楚地看到你在步进电机控制这方面的进展, 请问怎么才能够在楼主的 ...
只要动态改变速度? xxoo14 发表于 2013-5-7 19:28 static/image/common/back.gif
根据目标位置?不知道是不是这样理解的:给定一个位置,加速时间,中间通过加速,匀速,减速到达位置后。 ...
不是,而是不到目标位置,电机还在运动的时候目标位置已经改变,但是电机必须实时响应最新位置。。看这个链接的视频。。。电机要能这样反应。。。
http://www.amobbs.com/forum.php?mod=viewthread&tid=5513051&highlight=%E4%BA%91%E5%8F%B0 顶, xxoo14 发表于 2013-5-7 19:31 static/image/common/back.gif
只要动态改变速度?
对,我现在只想速度实时平稳地改变就行,
现在不知道怎么在楼主的基础上实现动态速度调整,我之前弄了一下,加速好像还好实现一点,但是减速的话就比较麻烦呢 ms好东西 gallop020142 发表于 2013-5-7 21:40 static/image/common/back.gif
对,我现在只想速度实时平稳地改变就行,
现在不知道怎么在楼主的基础上实现动态速度调整,我之前弄了 ...
我的加减速都是需要时才计算好,计算的是加速过程的数据,然后就在pwm或者定时器中断里面查表改变频率,加速顺序查,加速就逆向。时时改变只是需要判断当前速度与你下一步需求的目标速度的大小关系了。 {:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:} TIM-DMA才是王道 myqiang1990 发表于 2013-5-7 19:53 static/image/common/back.gif
不是,而是不到目标位置,电机还在运动的时候目标位置已经改变,但是电机必须实时响应最新位置。。看这个 ...
时时响应应该不可能,如果要反向的话就是先最短时间减速然后最短时间加速到目标位置,时间很短,也算是个时时吧。
xxoo14 发表于 2013-5-7 22:41 static/image/common/back.gif
我的加减速都是需要时才计算好,计算的是加速过程的数据,然后就在pwm或者定时器中断里面查表改变频率, ...
我有点明白你的意思了,但是这样计算来得及吗?特别是减速的时候,得提前算好多的数,而加速时是递推的,就这还担心算不过来呢 gallop020142 发表于 2013-5-7 23:03 static/image/common/back.gif
我有点明白你的意思了,但是这样计算来得及吗?特别是减速的时候,得提前算好多的数,而加速时是递推的, ...
可以的,我用的是m0 22m的速度,如果用m3 72m的速度话估计位置也可以处理了 正在学习,遇到众多问题啊 ,AVR里面好多固定数值不理解是什么含义,移植到STM32里不知道需不需要变,我看了楼主的STM32版的,变了好多,而且不知道为什么变成这个数值。 有没有原理图 顶起来!!! 这个速度比较快,之前我最高速只有20K 好东西,顶起! 好资料一定要顶起来 谢谢! mark一下 mark{:lol:}{:lol:}
mark{:lol:}{:lol:}
LZ的代码不能点动(就是一个按钮,按下去,某轴转动,松开轴停下来)? 谢谢分享 有人做过点动的步进电机驱动吗?