美文网首页
单片机小白学习之路(四十五)---步进电机

单片机小白学习之路(四十五)---步进电机

作者: 飞向深空 | 来源:发表于2018-11-08 22:07 被阅读0次

目标:理解步进电机并编码


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);
        }
}   

相关文章

网友评论

      本文标题:单片机小白学习之路(四十五)---步进电机

      本文链接:https://www.haomeiwen.com/subject/htcbxqtx.html