前不久弄到一隻28BYJ48型步進電機,沒有資料,從網上查找,搜到一些資料,但按照網上介紹的程序實驗,都沒有成功。後來根據資料的原理部分,試著自己編寫了一段程序,經過多次實驗調試,終於成功了。
哈哈,收穫不小!!!
本文引用地址:http://www.eepw.com.cn/article/201611/320271.htm步進電機是一種將電脈衝轉化為角位移的執行設備。通俗一點講:當步進驅動器接收到一個脈衝信號,它就驅動步進電機按設定的方向轉動一個固定的角度(即步進角)。我們可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時我們可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
28BYJ48型步進電機是四相八拍電機,電壓為DC5V~DC12V。當對步進電機按一定順序施加一系列連續不斷的控制脈衝時,它可以連續不斷地轉動。每一個脈衝信號使得步進電機的某一相或兩相繞組的通電狀態改變一次,也就對應轉子轉過一定的角度。當通電狀態的改變完成一個循環時,轉子轉過一個齒距。四相步進電機可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A……),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB……),四相八拍(A-AB-B-BC-C-CD-D-DA-A……)。本例是使用四相八拍驅動方式實現的。
下面是我寫的C語言控制程序實現28BYJ48型步進電機正轉五圈然後倒轉五圈的效果:
//********************************************************************************
//*
//*
//*
//*
//********************************************************************************
//*
//*
//*
//********************************************************************************
#include
#include
//**********************正向旋轉相序表*****************************
unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
//**********************反向旋轉相序表*****************************
unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
//***********************延時子程序********************************
void delay(unsigned int t)
{
}
//**********************步進電機正轉******************************
void
//*********************步進電機反轉********************************
void
{
//*************************主程序*********************************
main()