步进电机不反转

[复制链接]
4816|5
 楼主| 淡然如水 发表于 2011-1-24 11:57 | 显示全部楼层 |阅读模式
我用的是28BYJ-48型号的步进电机,用ULN2003芯片驱动,接P1口低四位,只看到它顺时针转,却没办法让他逆时针转 ,程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar f_rotation[]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};     
uchar b_rotation[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};      
void delay(uint i)
{
uchar x;
for(;i>0;i--)
  for(x=200;x>0;x--);
}
void main()
{
uchar i;
while(1)
{
  for(i=0;i<8;i--)        //四相八拍
  {
   P1=b_rotation[i];
   delay(500);
  }           
   for(i=0;i<8;i--)        
  {
   P1=f_rotation[i];
   delay(500);
  }
}
}

求教
触觉的爱 发表于 2011-1-24 12:34 | 显示全部楼层
china_fog 发表于 2011-1-24 13:11 | 显示全部楼层
顺时针可以,逆时针转不行,可能是不是两个需要频率有差别,我也碰到过电机正反转脉冲频率不一样。
 楼主| 淡然如水 发表于 2011-1-25 10:28 | 显示全部楼层
弄清楚问题在哪了,延时不能太长也不能太短,for循环里也有错误
ngg0707 发表于 2014-3-1 17:56 | 显示全部楼层
for里面哪错了?
handlike 发表于 2014-3-1 23:25 | 显示全部楼层
for(i=0;i<8;i--)

for(i=0;i<8;i++)        
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

28

帖子

1

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