大呵欠E 发表于 2012-11-5 18:29:26

继温度传感、1602不正常工作之后的又一问题,还是那菜鸟....

我还是那屡败屡做的菜鸟,这次的问题是步进电机,我用的是P3口控制通过ULN2003驱动步进电机,但是我没用74hc573我觉得没必要锁存,我使用的是简单的一相励磁。。但步进电机就是不转,我觉得我接线问题没错。。。请各位高手不吝赐教,还是那样,好人好报。。。附上代码和电路图加实物图。。

#include<reg52.h>
#define uchar unsigned char
#define uintunsigned int
void delay(uint z)
{
       while(z--);


   }

void main(void)
{
    uchar step_t[]={0x40,0x20,0x10,0x08}        ;
   uchar i;
   uint h;
        h=512;
        while(h--)
        {
          for(i=1;i<=4;i++)
          P3=step_t;
          delay(800);
          }

       while(1);
   }

sf49ers 发表于 2012-11-5 19:16:07

2个问题
1、for(i=1;i<=4;i++)
    {
         P3=step_t;
    }
    delay(800);

    P3连续走4步,输出后没延时。一般30pps

2、确认step_t[]={0x40,0x20,0x10,0x08}符合你的步进电机时序要求?
   总觉得怪怪的

大呵欠E 发表于 2012-11-5 20:20:16

sf49ers 发表于 2012-11-5 19:16 static/image/common/back.gif
2个问题
1、for(i=1;i

        while(h--)
        {
          for(i=1;i<=4;i++)
          {
          P3=step_t;
          delay(800);
          }
          }
改成这样对吗?我觉得时序没错啊,我用P3^6 P3^5 P3^4 P3^3 控制步进电机的 A B C D那不是 0x40,0x20,0x10,0x08???改了之后烧进去 步进电机有震动但是外面没转,又是怎么回事????

sf49ers 发表于 2012-11-5 20:54:11

时序啊,你把步进电机资料放上来

大呵欠E 发表于 2012-11-5 21:09:49

sf49ers 发表于 2012-11-5 20:54 static/image/common/back.gif
时序啊,你把步进电机资料放上来

嗯上传给你 麻烦看一下

sf49ers 发表于 2012-11-5 21:37:50

后面有个表格,先黄导通,在黄橙同时,然后单黄,以此类推
所以表起码应该是0x40,0x60,0x20,0x30,0x10...
线序一定要和规格书对好了

大呵欠E 发表于 2012-11-6 12:42:04

sf49ers 发表于 2012-11-5 21:37 static/image/common/back.gif
后面有个表格,先黄导通,在黄橙同时,然后单黄,以此类推
所以表起码应该是0x40,0x60,0x20,0x30,0x10...
...

改了,我觉得是步进电机坏了,感觉它里面的齿轮在转,但就是外面不转。。
页: [1]
查看完整版本: 继温度传感、1602不正常工作之后的又一问题,还是那菜鸟....