標(biāo)題: 51單片機(jī)連接A4988驅(qū)動42步進(jìn)電機(jī)可以轉(zhuǎn)動,但是不平緩 [打印本頁]

作者: dww465757120    時間: 2019-11-29 16:59
標(biāo)題: 51單片機(jī)連接A4988驅(qū)動42步進(jìn)電機(jī)可以轉(zhuǎn)動,但是不平緩
本帖最后由 dww465757120 于 2019-11-29 17:00 編輯


參照論壇上的程序,寫了個51單片機(jī)連接A4988驅(qū)動42步進(jìn)電機(jī)的程序,程序如下,A4988上的電流已經(jīng)調(diào)到1.5A,線序?qū)Φ模姾,步進(jìn)電機(jī)轉(zhuǎn)動,但是抖動的厲害,不平緩;上網(wǎng)查了一些資料,說是A4988要接收周期脈沖信號,不是方波信號?我的程序中STEP=~STEP  是不是產(chǎn)生的就是方波信號?麻煩大神們解答一下,如果是這個原因,那怎么改成周期性的脈沖信號?如果不是這個原因,麻煩大神幫忙解決下,謝謝!
PS:本人是學(xué)機(jī)械的,單片機(jī)只是業(yè)余愛好,所以水平有限。。。。。。


#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
        
sbit DIR=P2^2;         //方向
sbit STEP=P2^1;       //脈沖
sbit keyloop=P2^6;      //循環(huán)啟動鍵
uint n;            
uint a;         


/*********************延時函數(shù)*********************************/
void Delay1ms()                //@12.000MHz
{
        unsigned char i, j;


        i = 2;
        j = 239;
        do
        {
                while (--j);
        } while (--i);
}


        


void ndelay(n)
{
        while(n)
        {
                n--;
                Delay1ms();
        }
}




/*********************定時器初始化函數(shù)*****************************/
void Timer0Init()
{
        TMOD=0X01;
        TH0=(65536-a)/256;
        TL0=(65536-a)%256;
        ET0=1;
        EA=1;
}


/*************************循環(huán)啟動函數(shù)***************************/
void keyloopprint()
{
        if(keyloop==0)
        {
                ndelay(n);
                if(keyloop==0)
                {
                        TR0=~TR0;
                }
        }
}




void main()
{
        STEP=0;
        DIR=1;
        a=625;        /*用的4細(xì)分,按照60轉(zhuǎn)/min計(jì)算的,一秒就是1轉(zhuǎn),也就是200*4=800步,一步就是
                          1/800=0.00125秒,初始定時就是0.00125/2=0.000625,所以a=625微秒,不知道這樣算對不對?*/


        TR0=0;
        n=20;
        Timer0Init();
        while(1)
        {
                keyloopprint();
        }
}




void time0() interrupt 1
{
        TH0=(65536-a)/256;
        TL0=(65536-a)%256;
        STEP=~STEP;
}


作者: xuyaqi    時間: 2019-11-30 10:24
步進(jìn)電機(jī)低速運(yùn)行有震動很正常,需要通過細(xì)分技術(shù)來解決低速震動問題。
作者: dww465757120    時間: 2019-12-1 14:53
xuyaqi 發(fā)表于 2019-11-30 10:24
步進(jìn)電機(jī)低速運(yùn)行有震動很正常,需要通過細(xì)分技術(shù)來解決低速震動問題。

但是我調(diào)到8細(xì)分,高速情況下還是這樣。。。。。
作者: xuyaqi    時間: 2019-12-2 10:20
dww465757120 發(fā)表于 2019-12-1 14:53
但是我調(diào)到8細(xì)分,高速情況下還是這樣。。。。。

那就是細(xì)分級別還不夠,繼續(xù)提高細(xì)分?jǐn)?shù)。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1