极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9246|回复: 4

急急急 步进电机程序请教

[复制链接]
发表于 2014-5-15 18:42:06 | 显示全部楼层 |阅读模式
#include <reg52.h>


unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10};//正转表格
unsigned char code B_Rotation[4]={0x10,0x08,0x040,0x02};//反转表格

void Delay(unsigned int i)//延时
{
while(--i);
}

main()
{

unsigned char i;

while(1)
{
  for(i=0;i<4;i++)      //4相
     {
     P1=F_Rotation[i];  //输出对应的相 可以自行换成反转表格
     Delay(500);        //改变这个参数可以调整电机转速
         }
  }
}


这是一个步进电机转动的程序   请教各位大侠怎样改程序在可以接通电源后延时30S后步进电机再转动
回复

使用道具 举报

发表于 2014-5-15 21:33:04 | 显示全部楼层
方法很多。可以先设定一个初始条件,循环运行时,首次根据初始条件,延时30S,接着改变初始状态。
int k=0;
........
while(1)
{
    if(k==0)
   {
     Delay(30000);   
      k++;
    }
for(i=0;i<4;i++)      //4相
      {
      P1=F_Rotation[i];  //输出对应的相 可以自行换成反转表格
      Delay(500);        //改变这个参数可以调整电机转速
          }
   }
}
回复 支持 反对

使用道具 举报

发表于 2014-5-16 11:28:25 | 显示全部楼层
longma 发表于 2014-5-15 21:33
方法很多。可以先设定一个初始条件,循环运行时,首次根据初始条件,延时30S,接着改变初始状态。
int k=0 ...

int k=0;
........
Delay(30000);
while(1)
{
for(i=0;i<4;i++)      //4相
      {
      P1=F_Rotation;  //输出对应的相 可以自行换成反转表格
      Delay(500);        //改变这个参数可以调整电机转速
          }
   }
}

这样是否更好?
回复 支持 反对

使用道具 举报

发表于 2014-5-16 18:49:53 | 显示全部楼层
马良 发表于 2014-5-16 11:28
int k=0;
........
Delay(30000);

楼上说的极是,谢谢小马哥了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-19 15:06:46 | 显示全部楼层
楼上两位的方法都试了 还是不行,一接通电源立马转动。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 00:25 , Processed in 0.042928 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表