導讀: 不同規格的步進電機要選擇相應的驅動器,驅動器的相數、通電方式和電壓、電流都滿足步進電動機的需要。
注意事項小提示
1、不同規格的步進電機要選擇相應的驅動器,驅動器的相數、通電方式和電壓、電流都滿足步進電動機的需要。步進電動機的驅動電源主要由脈沖發生器、脈沖分配器和脈沖放大器(也稱功率放大器)三部分組成。單片機發送指令通過控制驅動器來控制步進電機。脈沖發生器是一個脈沖頻率在幾赫到幾十千赫内可連續變化的脈沖信号發生器。脈沖分配器根據指令把脈沖按一定的邏輯關系加到各相繞組的功率放大器上,使電機按一定方式運行,實現正、反轉和定位。
2、步進電機的控制方法,拿三相步進電機來說,不隻隻有三相三拍的方法。也可以用軟件實現三相六拍的方式。三相六拍的方式較三相三拍的方式步距角小了一半。比如,三拍的步距角為30度,六拍的步距角就是15度。這種将步距角精度提高的手段叫做細分。
3、上面的代碼所用指令是STC 89C52單片機,如需用其它芯片請另行更改。
實現代碼
#include
#include
#define uc unsigned char
#define ui unsigned int
uc code zz[4]={0x01,0x02,0x04,0x08}; //正轉表格,
uc code fz[4]={0x08,0x04,0x02,0x01}; //反轉表格,
ui k,z,y;
void delay(ui z) //z毫秒
{
ui x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
/******正轉*****************/
void zz() //相序為A->B->C
{
for(i=0;i<4;i )
{
P0=zz[i];
delay(100); //100ms轉動一個步距角
}
}
/******反轉*****************/
void fz() //相序為C->B->A
{
for(i=0;i<4;i )
{
P0=fz[i];
delay(100); //100ms轉動一個步距角
}
}
void main() //正轉5s,反轉5s後停止。
{
while(1)
{
ZZ();
delay(5000);
fz();
delay(5000);
while(1);
}
}
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!