关于51单片机驱动l298n控制步进电机。步进电机不转只抖得问题

使用的是这个步进电机
用的L298N

我把a- a+ b- b+ 分别接到了out1 out2 out3 out4
单片机的p1.0-3接到了in1-4
代码如下

#include "reg52.h"

#define speed 2
//Motor
sbit IN1 = P1^0; //定义管脚
sbit IN2 = P1^1;
sbit IN3 = P1^2;
sbit IN4 = P1^3;

void delay(int time);

/***************************************
函数功能:产生单相四拍脉冲控制步进机
**************************************/
void Go()
{ //A
IN1=0;
IN2=1;
IN3=1;
IN4=1;

delay(speed);

IN1=1;
IN2=0;
IN3=1;
IN4=1;

delay(speed);
//B
IN1=1;
IN2=1;
IN3=0;
IN4=1;
////
delay(speed);
//0
IN1=1;
IN2=1;
IN3=1;
IN4=0;

delay(speed);

}
/*******************延时函数****************************/
void delay(int time)
{
int i,j;

for(j=0; j <= time; j++)
for(i =0 ; i <= 120; i++);
}

void main()
{

while(1)
{

Go(); //步进电机运行

}

}

步进电机只振动。不转动是怎么回事

如果程序无问题,应是步进电机四条输入线接错了。
将A+、A-或B+、B-其中一组的两条线对调(如A+、A-对调或B+、B-对调)便行。对调后如果转动正常了,而正反转反过来时,再将两组线的+和-对调。
温馨提示:答案为网友推荐,仅供参考
相似回答