風力發(fā)電機維修保養(yǎng)免費指導
網(wǎng)上線以來始終不忘初心,本著利益共享的原則,幫助各位設備老板們免費收集大工程設備需求,迅速對接業(yè)務,除此以外求租者可以快速的篩選選出自己最理想的設備,也可直接下載眾興APP,隨時接收工地業(yè)務和查找挖機等設備,真做到省時、省、省心!除了求租者和求項目者,眾興租賃網(wǎng)還為機友們提供了一個免費推廣自己的平臺,平臺用戶可以免費加入眾興資料庫,迅速找到工作,設備老板可以將自己所擁有的設備展示
18065931931 郭經(jīng)理
步進電動機是一種將電脈沖信號轉換成角位移或線位移的機電元件。步進電動機的輸入量是脈沖序列,輸出量則為相應的增量位移或步進運動。正常運動情況下,它每轉一周具有固定的步數(shù);做連續(xù)步進運動時,其旋轉轉速與輸入脈沖的頻率保持嚴格的對應關系,不受電壓波動和負載變化的影響。由于步進電動機能直接接受數(shù)字量的控制,所以特別適宜采用微機進行控制。
該步進電機為一四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1是該四相反應式步進電機工作原理示意圖。
開始時,開關SB接通電源,SA、SC、SD斷開,B相磁極和轉子0、3號齒對齊,同時,轉子的1、4號齒就和C、D相繞組磁極產(chǎn)生錯齒,2、5號齒就和D、A相繞組磁極產(chǎn)生錯齒。當開關SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉子轉動,1、4號齒和C相繞組的磁極對齊。
而0、3號齒和A、B相繞組產(chǎn)生錯齒,2、5號齒就和A、D相繞組磁極產(chǎn)生錯齒。依次類推,A、B、C、D四相繞組輪流供電,則轉子會沿著A、B、C、D方向轉動。四相步進電機按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉動力矩又可以提高控制精度。
單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖2.a、b、c所示:
#include《reg52.h》
//unsigned char IRCOM[]={0x00,0x00,0x00,0x00,0x10,0x10};
unsigned char zhuangtai=0;
unsigned char code F_Rotaion[4]={0x03,0x05,0x0d,0x09};
void delay(uchar delay){
uchar i;
for(delay;delay》0;delay--){
for(i=123;i》0;i--)
}
}
/*
void delay1(int ms)
{
uchar y;
while(ms--)
{
for(y=0;y《250;y )
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
*/
void moto(){
unsigned char i;
for(i=0;i《4;i ){
P0=F_Rotaion[i];
delay(500);
}
}
void nmoto(){
unsigned char i;
for(i=3;i》=0;i--){
P0=F_Rotaion[i];
delay(500);
}
}
void stopmoto(){
P0=0x00;
}
void yunxing(){
if(zhuangtai==0){
stopmoto();
}
else if(zhuangtai==1){
moto();
}
else if(zhuangtai==2){
nmoto();
}
}
void jude(){
if(P3==0xef){
zhuangtai=0;
}
else if(P3==0xdf){
zhuangtai=1;
}
else if(P3==0xbf){
zhuangtai=2;
}
}
main(){
/*
IE=0x81;
TCON=0x01;
*/
P1=0x00;
P3=0xff;
jude();
yunxing();
}
/*void IR_IN()interrupt 0
{
uchar j,k,N=0;
EX0=0;
delay(15);
if(IRIN==1)
{
EX0 =1;
return;
}
while(!IRIN)
delay(1);
for(j=0;j《4;j )
{
for(k=0;k《8;k )
{
while(IRIN)
delay(1);
while(!IRIN)
delay(1);
while(IRIN)
{
delay(1);
N ;
if(N》=30)
{
EX0=1;
return;
}
}
IRCOM[j]=IRCOM[j]》》1;
if(N》=8)
IRCOM[j] = IRCOM[j] | 0x80;}
N=0;
}
if(IRCOM[2]!=~IRCOM[3])
{
EX0=1;
return;
}
if(IRCOM[0]!=0x00)
{
EX0=1;
return;
}
IRCOM[4]=IRCOM[2]&0x0F;
IRCOM[5]=IRCOM[2]》》4;
play();
beep();
EX0=1;
}