家用小型發(fā)電機(jī)200kw柴油發(fā)電機(jī)組聯(lián)系方式
比特幣|xv00|8bb4195c713eb5e77b00ba15036五糧液再罰經(jīng)銷商:36家被減少供應(yīng)因跨區(qū)域銷售貴州茅臺(tái)大漲近7%股價(jià)突破600元凈利潤同比增長成涉嫌串通壟斷德三大汽車巨頭總部遭歐盟搜查許家印二度成首富背后的財(cái)富邏輯貴陽廢紙價(jià)格同比上漲一倍收購商感嘆“一紙難求”貴州茅臺(tái)大漲6%再創(chuàng)歷史新高市值突破7500億元許家印兩度成首富背后的財(cái)富邏輯比特幣突破6000美
18065931931 郭經(jīng)理
步進(jìn)電動(dòng)機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件。步進(jìn)電動(dòng)機(jī)的輸入量是脈沖序列,輸出量則為相應(yīng)的增量位移或步進(jìn)運(yùn)動(dòng)。正常運(yùn)動(dòng)情況下,它每轉(zhuǎn)一周具有固定的步數(shù);做連續(xù)步進(jìn)運(yùn)動(dòng)時(shí),其旋轉(zhuǎn)轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。由于步進(jìn)電動(dòng)機(jī)能直接接受數(shù)字量的控制,所以特別適宜采用微機(jī)進(jìn)行控制。
該步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖。
開始時(shí),開關(guān)SB接通電源,SA、SC、SD斷開,B相磁極和轉(zhuǎn)子0、3號(hào)齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D相繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。當(dāng)開關(guān)SC接通電源,SB、SA、SD斷開時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C相繞組的磁極對(duì)齊。
而0、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動(dòng)力矩又可以提高控制精度。
單四拍、雙四拍與八拍工作方式的電源通電時(shí)序與波形分別如圖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;
}