OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3419|回复: 1

新手求教 步进电机 开环控制 精确控制脉冲数

[复制链接]

21

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1132
金钱
1132
注册时间
2015-7-31
在线时间
155 小时
发表于 2015-10-19 14:57:28 | 显示全部楼层 |阅读模式
5金钱
新手求教 步进电机 开环控制 精确控制脉冲数

情况是这样的:

1、控制5个步进电机,开环,控制光闸开合
2、只有单侧有极限检测,只在闭合的时候有光电开关可以检测到位并给出信号,打开的时候没有光电开关检测打开极限,得用软限位
3、按键控制步进电机正反转,也就是光闸开合
4、有定值模式,比如按下某一个按键,电机会带着负载自动移动到相应的位置停下

大概就是以上的情况

现在虽然做出来了,但是有的地方还是感觉不妥,而且有一处缺陷

先说下做出来的思路

PWM控制步进电机的最高频率是:72M/8000 =9000,应该是这么算吧....

因为是开环控制,按键的时候光闸打开或闭合需要记住输出过多少脉冲,预先先确定了多少个脉冲能开到位,把这个值赋值给DMA作为软限位打开极限值。我用的是定时器比较模式输出PWM,然后更新事件请求给DMA,DMA能得到已经发出多少脉冲
然后将DMA剩余值赋值给一个变量。
打开的时候会得到一个数值Count,然后将DMA关闭并把这个Count赋值给DMA作为闭合时用的脉冲个数限位,这样打开闭合软限位的问题算解决了(虽然我不知道这么搞对不对,但是结果表示没问题

定值的时候重新光闸重新回一下零位,然后给DMA赋值,步进电机开始运行,到位停止。

现在的缺陷是,打开光闸需要开关并赋值一次DMA,闭合的时候也一样,问题就来了,不一定什么时候就会出现问题,问题是这样的:

定值模式是有加减速的,想让它更快到位,DMA剩余值分成3个阶段,在第一段时间加速,第二段时间到达最高速,第三段时间也就是快到位了减速。正常用不会出现问题,但是频繁开关光闸的时候(正常情况不会这么用,我只是为了检查BUG就做了写破坏性的动作)问题就来了,光闸会一个速度的缓慢打开,这个速度应该和手动打开时的速度是一样的,到位之后停了,然后自己就恢复了正常带有加减速的情况,再次反向动作就正常了。5个电机基本都是这个控制模式,都出现这个情况。于是我特意将一路电机取消DMA,用中断的方式计数,不管多频繁的赋值它都不会出现上述问题...

我一定是在哪个部分理解的不对请大神们指点

还有频繁对DMA进行开启关闭是不是导致这个错误发生的根源呢 ?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-20 23:27:51 | 显示全部楼层
示波器看看波形比较靠谱.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 20:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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