新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 步進電機的驅動程序

        步進電機的驅動程序

        作者: 時間:2016-11-26 來源:網絡 收藏
        步進電機的控制難點在于步進電機的原理,置于程序則是非常的簡單!!

        所以想要控制好步進電機就必需對他有著充分的了解!

        本文引用地址:http://www.104case.com/article/201611/321648.htm

        步進電機按相書分為:二相電機、三相電機、四相電機、五相電機

        想讓步進電機按照按照你的要求你就必須了解電機能夠旋轉的原理:::

        旋轉:
          如A相通電,B,C相不通電時,由于磁場作用,齒1與A對齊,(轉子不受任何力以下均同)。如B相通電,A,C相不通電時,齒2應與B對齊,此時轉子向右移過1/3て,此時齒3與C偏移為1/3て,齒4與A偏移(て-1/3て)=2/3て。如C相通電,A,B相不通電,齒3應與C對齊,此時轉子又向右移過1/3て,此時齒4與A偏移為1/3て對齊。如A相通電,B,C相不通電,齒4與A對齊,轉子又向右移過1/3て這樣經過A、B、C、A分別通電狀態,齒4(即齒1前一齒)移到A相,電機轉子向右轉過一個齒距,如果不斷地按A,B,C,A……通電,電機就每步(每脈沖)1/3て,向右旋轉。如按A,C,B,A……通電,電機就反轉。



        #include "reg52.h"

        void delay(unsigned int t);

        //Motor
        sbit F1 = P1^0;
        sbit F2 = P1^1;
        sbit F3 = P1^2;
        sbit F4 = P1^3;

        unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反轉
        unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正轉
        unsigned intK;



        voidmotor_ffw()
        {
        unsigned char i;
        unsigned intj;
        for (j=0; j<12; j++)//轉1*n圈
        {

        for (i=0; i<8; i++)//一個周期轉30度
        {
        if(K==1) P1 = FFW[i]&0x1f;//取數據
        if(K==2) P1 = FFZ[i]&0x1f;
        delay(5);//調節轉速
        }
        }
        }


        void delay(unsigned int t)
        {
        unsigned int k;
        while(t--)
        {
        for(k=0; k<80; k++)
        { }
        }
        }


        main()
        {
        while(1)
        {
        K=1;
        motor_ffw();
        K=2;
        motor_ffw();

        }
        }



        關鍵詞: 步進電機驅動程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 苏尼特左旗| 桃园市| 通辽市| 博乐市| 板桥市| 瑞丽市| 铜鼓县| 江山市| 宝清县| 通海县| 孟村| 宿迁市| 织金县| 花莲市| 乌兰浩特市| 临海市| 青神县| 墨竹工卡县| 吉木萨尔县| 鄱阳县| 花垣县| 景东| 秭归县| 靖安县| 广东省| 竹北市| 八宿县| 三亚市| 齐河县| 平南县| 扎囊县| 无棣县| 靖宇县| 永年县| 灵川县| 镶黄旗| 社旗县| 昆明市| 黄陵县| 高碑店市| 浮梁县|