打印

步进电机问题

[复制链接]
1645|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
欧阳青云|  楼主 | 2009-8-11 19:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的:要让两相六线步进电机转起来。
驱动芯片是ULN2003,驱动电压是12V。
程序如下:
#include“reg51.h”
unsigned char table[ ]={0xfe,0xfd,0xfb,0xf7};
unsigned char step;
void delay(unsigned char t)
{
      unsigned char i;
      for(;t>0;t--)
      for(i=0;i<200;i++);
}
main()
{
      while(1)
      {
            step=0;
            P1=table[step];
            delay(10);
            step++;
            if(step==4)
            {
                     step=0;
            }
       }
}
为什么程序正常的情况下(用二极管证明程序正确),步进电机就是转比起来?
麻烦大家帮忙解决下,谢谢。

相关帖子

沙发
ayb_ice| | 2009-8-11 20:07 | 只看该作者
要有加减速

使用特权

评论回复
板凳
xwj| | 2009-8-11 20:33 | 只看该作者
汗! delay(10);
你以为你的步进电机是超声波电机啊?
就算死超声波电机也得有个加减速过程啊~~~

使用特权

评论回复
地板
wangyan1217| | 2009-8-11 21:19 | 只看该作者
你的step应该用static来定义吧

使用特权

评论回复
5
欧阳青云|  楼主 | 2009-8-13 21:57 | 只看该作者
我不知道加速程序怎么写。麻烦大家帮我加上加速的程序。谢谢大家。谢谢大家。

使用特权

评论回复
6
踢球老越位| | 2009-8-13 22:15 | 只看该作者
跑第一步停N个间隔
跑第二步停N-1个间隔
跑第三步停N-2个间隔
。。。。。。

使用特权

评论回复
7
欧阳青云|  楼主 | 2009-8-13 23:55 | 只看该作者
哦是这样子啊,谢谢大家。希望能成功。

使用特权

评论回复
8
5880527| | 2009-8-14 09:57 | 只看该作者
最简单的自己做个表,把查得的频率放到定时器初始值里。初始频率几百赫兹,一般三四百左右就可以了,然后每步爬个几十赫兹,爬到几K后稳住就可以了,下坡你照着原路返回。要爬得顺畅实在不容易,当你把一个比较吵的步进电机跑起来能听到悦耳轻快的声音时应该算及格了

使用特权

评论回复
9
欧阳青云|  楼主 | 2009-8-14 13:17 | 只看该作者
那我试试,谢谢。

使用特权

评论回复
10
zy_spa| | 2009-8-15 17:55 | 只看该作者
最简单的自己做个表,把查得的频率放到定时器初始值里。初始频率几百赫兹,一般三四百左右就可以了,然后每步爬个几十赫兹,爬到几K后稳住就可以了,下坡你照着原路返回。要爬得顺畅实在不容易,当你把一个比较吵的 ...
5880527 发表于 2009-8-14 09:57

谢谢!经验之谈对初学者无疑是福音,谢谢你无私的奉献

使用特权

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

本版积分规则

47

主题

378

帖子

0

粉丝