打印

步进电机不反转

[复制链接]
3948|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 | 只看该作者
8 位

使用特权

评论回复
板凳
china_fog| | 2011-1-24 13:11 | 只看该作者
顺时针可以,逆时针转不行,可能是不是两个需要频率有差别,我也碰到过电机正反转脉冲频率不一样。

使用特权

评论回复
地板
淡然如水|  楼主 | 2011-1-25 10:28 | 只看该作者
弄清楚问题在哪了,延时不能太长也不能太短,for循环里也有错误

使用特权

评论回复
5
ngg0707| | 2014-3-1 17:56 | 只看该作者
for里面哪错了?

使用特权

评论回复
6
handlike| | 2014-3-1 23:25 | 只看该作者
for(i=0;i<8;i--)

for(i=0;i<8;i++)        

使用特权

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

本版积分规则

11

主题

28

帖子

1

粉丝