标题:
单片机驱动光驱步进电机只响不动 附代码
[打印本页]
作者:
后面新来的
时间:
2019-4-26 23:09
标题:
单片机驱动光驱步进电机只响不动 附代码
麻烦各位大虾帮我看看光驱步进电机为什么只响不动,下面是完整的程序。
IMG_20190426_225856.jpg
(5.1 MB, 下载次数: 45)
下载附件
2019-4-26 23:03 上传
单片机源程序如下:
#include<reg52.h>
#define GPIO_MOTOR P1
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
sbit K4=P3^5;
sbit a0=P1^0;
sbit a1=P1^1;
sbit b0=P1^3;
sbit b1=P1^4;
void right(unsigned int y);
void left(unsigned int x);
void Delay(unsigned int t);
unsigned char Direction,Speed;
void motor();
void main(void)
{
unsigned char i;
Speed=5;
while(1)
{
if(K1==0)
{
Delay(50);
if(K1==0)
{
Direction=1;
}
while((i<200)&&(K1==0))
{
Delay(10);
i++;
}
i=0;
}
if(K2==0)
{
Delay(50);
if(K2==0)
{
Direction=2;
}
while((i<200)&&(K2==0))
{
Delay(10);
i++;
}
i=0;
}
if(K3==0)
{
Delay(100);
if(K3==0)
{
Speed--;
if(Speed<=3)
Speed=4;
}
while((i<200)&&(K2==0))
{
Delay(10);
i++;
}
i=0;
}
if(K4==0)
{
Delay(100);
if(K4==0)
{
Speed++;
}
while((i<200)&&(K4==0))
{
Delay(10);
i++;
}
i=0;
}
motor();
}
}
void motor()
{
if(Direction==1)
{
a0=0;
a1=1;
b0=1;
b1=1;
Delay(Speed);
a0=1;
a1=0;
b0=1;
b1=1;
Delay(Speed);
a0=1;
a1=1;
b0=0;
b1=1;
Delay(Speed);
a0=1;
a1=1;
b0=1;
b1=0;
Delay(Speed);
}
if(Direction==2)
{
a0=1;
a1=1;
b0=1;
b1=0;
Delay(Speed);
a0=1;
a1=1;
b0=0;
b1=1;
Delay(Speed);
a0=1;
a1=0;
b0=1;
b1=1;
Delay(Speed);
a0=0;
a1=1;
b0=1;
b1=1;
Delay(Speed);
}
}
void Delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<70; k++)
{ }
}
}
复制代码
作者:
qinhfm
时间:
2019-4-27 08:47
你在 a0=1;
a1=1;
b0=1;
b1=0;。。。。各行加入延时。
作者:
赵工程师
时间:
2019-4-27 11:04
1.可能电流不足
2.电机接错相
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1