打印

步进电机驱动问题

[复制链接]
4369|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzmmcc|  楼主 | 2009-8-10 22:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人用51单片机、电机驱动芯片A3977控制两相步进电机,出现了如下问题:电机是1.8度的,8细分,因此转一圈需要(360/1.8)×8=1600步,连续转1600步时,电机能转回到原点;我需要单步控制,使电机转16次回到原点,则每次按键电机转360/16=22.5度,因此单步控制时电机一次走1600/16=100步,每次按键按下,电机走100步,之后进入休眠状态,直到下一次按键按下再唤醒电机,这样操作,电机走完16次之后却回不到原点,而如果电机不进入休眠状态,则能回到原点。请高手指点会是什么原因呢?

相关帖子

沙发
ayb_ice| | 2009-8-10 22:46 | 只看该作者
肯定是丢了脉冲了,仔细检查程序吧.

使用特权

评论回复
板凳
我是土匪| | 2009-8-11 00:09 | 只看该作者
检查下按键唤醒,这块出问题了

使用特权

评论回复
地板
程序匠人| | 2009-8-11 00:14 | 只看该作者
进入休眠状态后,你的电机以及电机驱动电路的电源是否被关闭?
如是,那么再次唤醒后,电源再打开,有没有足够的延时?

使用特权

评论回复
5
zzmmcc|  楼主 | 2009-8-16 22:06 | 只看该作者
发现导致失步的原因是每走一次停下来之后再重新走的时候,都要往回转一小点角度,而且是在步进电机刚从睡眠状态唤醒的那个瞬间反转,尽管我按键唤醒之后延时了很长时间再送时钟信号,还是不行,而且我也试过了很多不同的时序,还是解决不了这么问题,请高手指点:会是什么原因呢?

使用特权

评论回复
6
xwj| | 2009-8-16 22:21 | 只看该作者
1、根本就不该细分;
2、选用7.5度的点击都可以,这个可便宜多了

3、啥“休眠状态 ”? 关掉输出还是关掉驱动器电源?     细分时是由两相的电流矢量和形成中间步,进入休眠状态,一旦没有电流输出,则转子肯定会转到最近的磁极上去(所以不该细分);而如果关了驱动器的电源,则重上电时驱动器也会复位到第一步位置

使用特权

评论回复
7
腾腾| | 2009-8-17 09:33 | 只看该作者
细分只是在运动的时候有效,脉冲已停止,它就会回到固定点上,重新加脉冲后会再细分。
如你的8细分,转起来的时候一步分成8步,当你走到第五步上停止时,它会停到第八步上,

使用特权

评论回复
8
腾腾| | 2009-8-17 09:36 | 只看该作者
老X可否开个步进电机专门帖?
相信此贴必火。
将电机的原理、分类、驱动方式、控制等做个大类分专题给大家介绍下!

使用特权

评论回复
9
5880527| | 2009-8-17 09:52 | 只看该作者
我前段时间说步进电机的一个脉冲都够研究大半年的,没想到几位高手说那玩意太简单,要不就是我太笨?

使用特权

评论回复
10
腾腾| | 2009-8-17 10:07 | 只看该作者
楼上说的没错。我悟性低,搞了好久都没搞好。:(

使用特权

评论回复
11
huangqi412| | 2009-8-17 10:44 | 只看该作者
只用无刷...  不过原理很近.

使用特权

评论回复
12
zzmmcc|  楼主 | 2009-8-17 20:12 | 只看该作者
强烈支持,需要学习

使用特权

评论回复
13
zzmmcc|  楼主 | 2009-8-17 20:15 | 只看该作者
目前还在调试中,根据功能需要,细分是肯定要的,电机是1.8度的也都已经确定了,做了很多实验,单步休眠就是实现不了,只得作罢,改为采用使能端控制了。
不过还想请问一下:电机的噪声该如何消除呢?

使用特权

评论回复
14
zzmmcc|  楼主 | 2009-8-17 20:17 | 只看该作者
细分只是在运动的时候有效,脉冲已停止,它就会回到固定点上,重新加脉冲后会再细分。
如你的8细分,转起来的时候一步分成8步,当你走到第五步上停止时,它会停到第八步上, ...
腾腾 发表于 2009-8-17 09:33

可是我不把Sleep信号拉低的话,又不会失步的呢

使用特权

评论回复
15
QuakeGod| | 2009-8-17 20:21 | 只看该作者
6楼7楼说得对,但是不完全,

首先细分是有好处的,这个必须肯定,可以降低噪声,增加启动力矩等,
但是细分只能在动态时使用,且中间的那几步是不稳定状态,所以你每次走100步是不合理的,
如果改成每次走96步或104步就不会产生这个问题了。

使用特权

评论回复
16
zzmmcc|  楼主 | 2009-8-17 21:28 | 只看该作者
6楼7楼说得对,但是不完全,

首先细分是有好处的,这个必须肯定,可以降低噪声,增加启动力矩等,
但是细分只能在动态时使用,且中间的那几步是不稳定状态,所以你每次走100步是不合理的,
如果改成每次走96步或104 ...
QuakeGod 发表于 2009-8-17 20:21

好的,非常感谢您的指导
但是每次从休眠状态唤醒的时候电机总是反转,所以现在不考虑用Sleep了

使用特权

评论回复
17
腾腾| | 2009-8-18 10:07 | 只看该作者
考虑下反转的原因,是否是因为方向信号引起?

使用特权

评论回复
18
zzmmcc|  楼主 | 2009-8-18 21:22 | 只看该作者
考虑下反转的原因,是否是因为方向信号引起?
腾腾 发表于 2009-8-18 10:07

这个我也想过,不可能哦,因为方向信号一直都是低的

使用特权

评论回复
19
腾腾| | 2009-8-19 09:17 | 只看该作者
这个我也想过,不可能哦,因为方向信号一直都是低的
zzmmcc 发表于 2009-8-18 21:22


步进脉冲的序列呢?有没有高反?

使用特权

评论回复
20
icmap| | 2009-8-19 22:33 | 只看该作者
估计休眠时或退出休眠时 MCU 输出引脚的电平不是你希望的那样。用示波器看看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

35

帖子

0

粉丝