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

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

作者: 飞向深空 | 来源:发表于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