目标:理解步进电机并编码
1.步进电机简介
双极性步进电机之所以如此命名,是因为每个绕组都可以两个方向通电。双极性步进电机有4根引出线,每个绕组两根。比如说我们开发板上使用的4线双极性步进电机,其有两相A,B,每个绕组有两根线,A+和A-,B+和B-,运行方式可以是(A+ —A-) —(B+—B-),如果想换个方向运行,可以是(A- —A+)—(B—B+)。一看就能看见规律,+和-的顺序两组一致就能转起来
单极性步进电机:不改变绕组电流的方向,只是对几个绕组依次循环通电
,比如说四相电机,有四个绕组,分别为:ABCD,可有两种运行方式:
1:AB--BC--CD--DA--AB--�
2:AB--B--BC--C--CD--D--DA--A--AB--�
(注:AB意为AB两个绕组同时同电)、
电机模块电路
电路是和马达一个电路
在代码里OUTA就是A-,OUTB是A+,OUTC是C-,OUTD是D+
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit MOTOA = P1^0;
sbit MOTOB = P1^1;
sbit MOTOC = P1^2;
sbit MOTOD = P1^3;
#define SPEED 100
void delay(u16 i)
{
while(i--);
}
void main()
{
P1 = 0x00; //让输出都是0停止旋转,此步可省略
while(1){
MOTOA = 1; //A-
MOTOB = 0;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 0; //A+
MOTOB = 1;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1; //B-
MOTOB = 1;
MOTOC = 1;
MOTOD = 0;
delay(SPEED);
MOTOA = 1; //B+
MOTOB = 1;
MOTOC = 0;
MOTOD = 1;
delay(SPEED);
}
}
网友评论