步进电机问题

[复制链接]
3410|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来定义吧
 楼主| 欧阳青云 发表于 2009-8-13 21:57 | 显示全部楼层
我不知道加速程序怎么写。麻烦大家帮我加上加速的程序。谢谢大家。谢谢大家。
踢球老越位 发表于 2009-8-13 22:15 | 显示全部楼层
跑第一步停N个间隔
跑第二步停N-1个间隔
跑第三步停N-2个间隔
。。。。。。
 楼主| 欧阳青云 发表于 2009-8-13 23:55 | 显示全部楼层
哦是这样子啊,谢谢大家。希望能成功。
5880527 发表于 2009-8-14 09:57 | 显示全部楼层
最简单的自己做个表,把查得的频率放到定时器初始值里。初始频率几百赫兹,一般三四百左右就可以了,然后每步爬个几十赫兹,爬到几K后稳住就可以了,下坡你照着原路返回。要爬得顺畅实在不容易,当你把一个比较吵的步进电机跑起来能听到悦耳轻快的声音时应该算及格了
 楼主| 欧阳青云 发表于 2009-8-14 13:17 | 显示全部楼层
那我试试,谢谢。
zy_spa 发表于 2009-8-15 17:55 | 显示全部楼层
最简单的自己做个表,把查得的频率放到定时器初始值里。初始频率几百赫兹,一般三四百左右就可以了,然后每步爬个几十赫兹,爬到几K后稳住就可以了,下坡你照着原路返回。要爬得顺畅实在不容易,当你把一个比较吵的 ...
5880527 发表于 2009-8-14 09:57

谢谢!经验之谈对初学者无疑是福音,谢谢你无私的奉献
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

378

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部