gongjun98 发表于 2013-4-18 11:56:58

基于STM32的4轴步进电机加减速控制全套工程源码

基于STM32的4轴步进电机加减速控制全套工程源码,共有两套;
一套是STM32F103的,另外一套是STM32F405的;
可以同时控制4轴步进电机进行加减速;
速率可以达到100K以上;

源码算法是基于《AVR446: Linear speed control of stepper motor》;
详细见附件压缩包中的文档,已经在实际工程中得到应用;

欢迎大家讨论并提出改进意见。


semonpic 发表于 2013-4-18 12:01:43

好东西要订

dxf5200 发表于 2013-4-18 12:02:26

mark                  

pulan 发表于 2013-4-18 12:04:18

好东西要mark

xxoo14 发表于 2013-4-18 12:10:47

好东西,加速算法是线性的,有非线性的吗?

chaoyue0376 发表于 2013-4-18 12:11:28

mark一下

touch_mcu 发表于 2013-4-18 12:13:15

好东西要mark

qzwx741 发表于 2013-4-18 12:16:11

mark,学习了

stely 发表于 2013-4-18 12:18:54

必须得顶。配上电路图更好。

lyg407 发表于 2013-4-18 12:20:06

谢谢分享。。。

gallop020142 发表于 2013-4-18 12:20:26

mark{:handshake:}

jiaxinhui 发表于 2013-4-18 12:23:03

好资料一定要顶

dmxfeng 发表于 2013-4-18 12:23:31

楼主好人

lans0625 发表于 2013-4-18 12:25:21

谢谢分享,正到处找这方面资料……

bruce_helen 发表于 2013-4-18 12:36:16

好东西。我们下面准备用STM32F207系列做电机驱动。但是我没做过电机相关的驱动。我们的设备上有5个直流电机,需要同时驱动。不知道这个移植到直流电机上行不行?

buxinshan 发表于 2013-4-18 12:43:29

好资料,必须顶!!!!

kxm2008 发表于 2013-4-18 12:43:57

谢谢分享

wsws1057 发表于 2013-4-18 12:49:59

{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}{:hug:}

vcprograme 发表于 2013-4-18 12:59:25

谢谢共享!!!!!!!

bbs2009 发表于 2013-4-18 13:05:50

wallacer 发表于 2013-4-18 13:12:57

记得之前做医疗仪器时候也是用的这个算法来控制步进电机的,真心不错!

mage99 发表于 2013-4-18 13:33:58

好东西要顶~

lanyuye 发表于 2013-4-18 13:37:18

4轴应用是什么设备啊?

Elec_Ramble 发表于 2013-4-18 13:48:13

Mark,顶…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端

GUOHUDONG 发表于 2013-4-18 13:53:43

谢谢分享

daya 发表于 2013-4-18 14:44:10

good~~~
正准备做,参考一下~~~

im叶飞 发表于 2013-4-18 14:58:03

如果能把   数据处理不放中断里 速度 能 更快的 ..

丅輩孑_变壊 发表于 2013-4-18 14:59:25

火速先顶,在下,,,,

z421868436 发表于 2013-4-18 14:59:59

MARK
以后慢慢学习

苹果520 发表于 2013-4-18 16:29:52

里面有编码器的读取吗?

qujingqi 发表于 2013-4-18 16:43:33

谢谢你的发表!

hellolinux 发表于 2013-4-18 16:49:13

配上电路图更好。{:lol:}

Bicycle 发表于 2013-4-18 17:41:30

配上电路图更好。

+1

vc8fans 发表于 2013-4-18 17:53:41

太强大了,,

newhz 发表于 2013-4-18 17:57:50

好东西,顶下

genhao2 发表于 2013-4-18 18:04:30

学习一下

cdlxzlp 发表于 2013-4-18 18:55:20

坚决 顶起来啊

ap0705307 发表于 2013-4-18 19:09:48

那文档我看过!但未能成功移植!希望可以参考你的...

ap0705307 发表于 2013-4-18 19:20:35

还有这个貌似是给定固定的步数,然后算出一条加减速曲线的。过程是加速》减速...
我想问能不能上次给的位置还没到达的时候,给出新的位置然后平滑过渡到新的位置?

wuguoyan 发表于 2013-4-18 19:26:20

不懂,但是感谢楼主的分享。。{:lol:}

wind2100 发表于 2013-4-18 19:26:43

我觉得应该将单片机的配置和步进电机的驱动程序分开写(各一个C文件) 这样更容易移植。
可读性更强

lwg998 发表于 2013-4-18 20:40:50

学习了,谢谢楼主

lcmdw 发表于 2013-4-18 21:49:22

学习学习

130300dong 发表于 2013-4-18 22:40:47

不是太懂 但是应该不错

pingsiu 发表于 2013-4-18 23:14:36

Thank{:handshake:}

桂电小手 发表于 2013-4-19 01:03:45

谢谢分享

dalianlwd 发表于 2013-4-19 07:37:42

太好了,非常感谢楼主的奉献,很有价值。

pipi516 发表于 2013-4-19 08:41:07

mark 步进电机!

cqfeiyuxmj 发表于 2013-4-19 08:57:05

这个必须顶,真是及时雨呀,多谢楼主.

fayuanye 发表于 2013-4-19 09:18:56

谢谢分享!!

xiaocool 发表于 2013-4-19 12:07:57

谢谢楼主分享

wzhscj 发表于 2013-4-19 12:16:16

不顶一下,太对不起楼主了

myqiang1990 发表于 2013-4-19 14:54:27

本帖最后由 myqiang1990 于 2013-4-19 14:58 编辑

楼主如果能做到更具目标位置动态加减速就更好了,而不是设定多少步然后就加减速直到走完这些为止,然后才能响应新的位置。跟39楼描述那要,
这份文档我研究过,而且还有AVR的源码。感觉不适合做更具目标位置进行动态加减速。



KSAYY 发表于 2013-4-19 16:33:44

谢谢分享。。。

yanmaishuilei 发表于 2013-4-19 18:36:00

谢谢分享,下来参考。

dtdzlujian 发表于 2013-4-19 18:58:50

很强大啊!支持

hmd420304805 发表于 2013-4-19 19:34:35

同学,这个在中断里处理的,就4个轴同时到100k的速度?400k的中断速度,加上通讯中断,加上系统中断,加上外部中断,全是中断啊!cpu还能做什么?楼主发代码前请三思!

lwg998 发表于 2013-4-20 09:52:59

谢谢楼主分享,学习中

wenunit 发表于 2013-4-20 15:33:14

精彩,好东西.

kaif_w 发表于 2013-4-21 11:47:51

好东西,谢楼主分享。

xmdesign 发表于 2013-4-21 12:03:16

好东西学习了,谢谢!

YS126 发表于 2013-4-21 13:22:57

步进电机控制的好,不太容易啊。

兜里有糖 发表于 2013-4-21 13:57:21

谢谢楼主分享~

mcu5i51 发表于 2013-4-21 14:25:01

难得的好东西呀,

zzz123456 发表于 2013-4-22 00:04:58

记号,收藏

hongyao 发表于 2013-4-22 09:32:45

好资料,必须顶!!!!

dory_m 发表于 2013-4-22 14:10:50

学习,谢谢!!!

zndz410 发表于 2013-4-22 14:41:21

好东西,果断mark。

f8023m 发表于 2013-4-24 17:06:36

下来看看,应该不错

Phonse 发表于 2013-4-24 17:10:10

下载备用。。后期可能要用到的

gallop020142 发表于 2013-5-7 16:31:20

myqiang1990 发表于 2013-4-19 14:54 static/image/common/back.gif
楼主如果能做到更具目标位置动态加减速就更好了,而不是设定多少步然后就加减速直到走完这些为止,然后才能 ...


同学,看过你之前的几个帖子,可以清楚地看到你在步进电机控制这方面的进展,

请问怎么才能够在楼主的基础上实现动态地调速呢?即:从一个速度-->加速/减速-->另一个速度呢?

我尝试着改了一下,发现加速还好改一点,但是减速过程比较麻烦,不知道你有没有这方面的经验呢?谢谢

lanyuye 发表于 2013-5-7 16:34:36

当在加减速最高速时,其他任务会不会比较难执行

myqiang1990 发表于 2013-5-7 18:37:09

gallop020142 发表于 2013-5-7 16:31 static/image/common/back.gif
同学,看过你之前的几个帖子,可以清楚地看到你在步进电机控制这方面的进展,

请问怎么才能够在楼主的 ...

这份代码我没有用,不过看过一下,我也没有改过,我觉得如果做成自动跟踪目标来调速很麻烦~~~暂时没时间研究~~~你研究出来说一下思路呀!!!{:lol:}

myqiang1990 发表于 2013-5-7 18:39:51

lanyuye 发表于 2013-5-7 16:34 static/image/common/back.gif
当在加减速最高速时,其他任务会不会比较难执行

楼主大的代码应该是固定8细分的,8细分做高速,对其他任务影响不是很大~~如果高细分就会~~~所以最好做成变细分~~高速低细分,低速高细分,但是我觉得如果用变细分,要在这份代码上修改, 我觉得很困难哦~~有哪位大大改出来了~~

xxoo14 发表于 2013-5-7 19:21:47

ap0705307 发表于 2013-4-18 19:20 还有这个貌似是给定固定的步数,然后算出一条加减速曲线的。过程是加速》减速... 我想问能不能上次给的位置 ...

速度时时调整已经做好了,位置与速度时时调整正在进行中。

xxoo14 发表于 2013-5-7 19:28:06

myqiang1990 发表于 2013-4-19 14:54 楼主如果能做到更具目标位置动态加减速就更好了,而不是设定多少步然后就加减速直到走完这些为止,然后才能 ...

根据目标位置?不知道是不是这样理解的:给定一个位置,加速时间,中间通过加速,匀速,减速到达位置后。然后再给类似的目标位置

xxoo14 发表于 2013-5-7 19:31:11

gallop020142 发表于 2013-5-7 16:31 同学,看过你之前的几个帖子,可以清楚地看到你在步进电机控制这方面的进展, 请问怎么才能够在楼主的 ...

只要动态改变速度?

myqiang1990 发表于 2013-5-7 19:53:37

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

ddcour 发表于 2013-5-7 20:16:18

顶,                     

gallop020142 发表于 2013-5-7 21:40:28

xxoo14 发表于 2013-5-7 19:31 static/image/common/back.gif
只要动态改变速度?


对,我现在只想速度实时平稳地改变就行,

现在不知道怎么在楼主的基础上实现动态速度调整,我之前弄了一下,加速好像还好实现一点,但是减速的话就比较麻烦呢

AllEle 发表于 2013-5-7 21:48:14

ms好东西

xxoo14 发表于 2013-5-7 22:41:27

gallop020142 发表于 2013-5-7 21:40 static/image/common/back.gif
对,我现在只想速度实时平稳地改变就行,

现在不知道怎么在楼主的基础上实现动态速度调整,我之前弄了 ...

我的加减速都是需要时才计算好,计算的是加速过程的数据,然后就在pwm或者定时器中断里面查表改变频率,加速顺序查,加速就逆向。时时改变只是需要判断当前速度与你下一步需求的目标速度的大小关系了。

sergeserge 发表于 2013-5-7 22:45:02

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

Flyback 发表于 2013-5-7 22:49:21

TIM-DMA才是王道

xxoo14 发表于 2013-5-7 22:59:43

myqiang1990 发表于 2013-5-7 19:53 static/image/common/back.gif
不是,而是不到目标位置,电机还在运动的时候目标位置已经改变,但是电机必须实时响应最新位置。。看这个 ...

时时响应应该不可能,如果要反向的话就是先最短时间减速然后最短时间加速到目标位置,时间很短,也算是个时时吧。

gallop020142 发表于 2013-5-7 23:03:56

xxoo14 发表于 2013-5-7 22:41 static/image/common/back.gif
我的加减速都是需要时才计算好,计算的是加速过程的数据,然后就在pwm或者定时器中断里面查表改变频率, ...

我有点明白你的意思了,但是这样计算来得及吗?特别是减速的时候,得提前算好多的数,而加速时是递推的,就这还担心算不过来呢

xxoo14 发表于 2013-5-7 23:13:49

gallop020142 发表于 2013-5-7 23:03 static/image/common/back.gif
我有点明白你的意思了,但是这样计算来得及吗?特别是减速的时候,得提前算好多的数,而加速时是递推的, ...

可以的,我用的是m0 22m的速度,如果用m3 72m的速度话估计位置也可以处理了

Keller 发表于 2013-5-8 17:20:13

正在学习,遇到众多问题啊 ,AVR里面好多固定数值不理解是什么含义,移植到STM32里不知道需不需要变,我看了楼主的STM32版的,变了好多,而且不知道为什么变成这个数值。

lixingling 发表于 2013-5-9 19:34:44

有没有原理图

deeplly 发表于 2013-5-9 21:20:16

顶起来!!!

champtech 发表于 2013-5-10 14:52:05

这个速度比较快,之前我最高速只有20K

lcmdw 发表于 2013-5-10 15:17:27

好东西,顶起!

liming 发表于 2013-5-10 17:27:43

好资料一定要顶起来

robin林 发表于 2013-5-11 10:58:45

谢谢!   

vickyphan 发表于 2013-5-11 15:14:46

mark一下

pipi516 发表于 2013-5-11 15:29:52

mark{:lol:}{:lol:}

pipi516 发表于 2013-5-11 15:30:08

mark{:lol:}{:lol:}

xh2008email 发表于 2013-5-19 12:36:38

LZ的代码不能点动(就是一个按钮,按下去,某轴转动,松开轴停下来)?

小黑鱼1148 发表于 2013-5-19 12:41:07

谢谢分享

xh2008email 发表于 2013-5-19 14:38:30

有人做过点动的步进电机驱动吗?
页: [1] 2 3 4 5 6
查看完整版本: 基于STM32的4轴步进电机加减速控制全套工程源码