單片機(jī)控制舵機(jī)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源程序如下:
- #include <reg52.h> //頭文件
- #define uchar unsigned char //宏定義無符號(hào)字符型
- #define uint unsigned int //宏定義無符號(hào)整型
- uint b; //中斷值
- uint N=0; //占空比計(jì)數(shù)值
- uint X=8; //初始角度值 (取值范2~15)
- uchar key_up;
- uchar key_down;
- /*************************************************************************/
- sbit P2_2=P2^2;//角度加
- sbit P2_3=P2^3;//角度減
- sbit PWM=P1^0;//PWM輸出 (舵機(jī)控制端)
- /*************************************************************************/
- void get_key(void)//按鍵掃描函數(shù)
- {
- while(P2_2==0)//按鍵加計(jì)數(shù)標(biāo)志
- {key_up=1;
- }
- while(P2_3==0)//按鍵減計(jì)數(shù)標(biāo)志
- {key_down=1;
- }
- }
- /*************************************************************************/
- void timer0( ) interrupt 1 //定時(shí)器0工作方式1
- {
- TH0=0xff; //重裝計(jì)數(shù)初值
- TL0=0x38; //重裝計(jì)數(shù)初值
- b++;
- get_key();
- if (key_up==1)
- {
- if(X!=15)//判斷是否計(jì)數(shù)到9999
- {
- X=X+1;//加一
- key_up=0;
- }
- }
- if (key_down==1)
- {
- if(X!=2)//判斷是否計(jì)數(shù)到0
- {
- X=X-1;//減一
- key_down=0;
- }
- }
- }
- /*************************************************************************/
- void main()
- {
- TMOD=0X01; //定時(shí)器中斷0
- TH0=0xff; //重裝計(jì)數(shù)初值
- TL0=0x38; //重裝計(jì)數(shù)初值
- EA=1; //開CPU中斷
- ET0=1; //開T/C0中斷
- TR0=1;
- while(1) //無限循環(huán)
- {
- PWM=1; //輸出PWM正
- while(1)
- {
- b=0;
- while(!b);
- if (N==X)
- PWM=0;
- if (N==100)break;
- N++;
- }
- N=0;
- }
- }
復(fù)制代碼
微型伺服馬達(dá)原理與控制(中鳴)
1、微型伺服馬達(dá)內(nèi)部結(jié)構(gòu)一個(gè)微型伺服馬達(dá)內(nèi)部包括了一個(gè)小型直流馬達(dá);一組變速齒輪組;一個(gè)反饋可調(diào)電位器;及一塊電子控制板。其中,高速轉(zhuǎn)動(dòng)的直流馬達(dá)提供了原始動(dòng)力,帶動(dòng)變速(減速)齒輪組,使之產(chǎn)生高扭力的輸出,齒輪組的變速比愈大,伺服馬達(dá)的輸出扭力也愈大,也就是說越能承受更大的重量,但轉(zhuǎn)動(dòng)的速度也愈低。 
2、微行伺服馬達(dá)的工作原理一個(gè)微型伺服馬達(dá)是一個(gè)典型閉環(huán)反饋系統(tǒng),其原理可由下圖表示: 
減速齒輪組由馬達(dá)驅(qū)動(dòng),其終端(輸出端)帶動(dòng)一個(gè)線性的比例電位器作位置檢測,該電位器把轉(zhuǎn)角坐標(biāo)轉(zhuǎn)換為一比例電壓反饋給控制線路板,控制線路板將其與輸入的控制脈沖信號(hào)比較,產(chǎn)生糾正脈沖,并驅(qū)動(dòng)馬達(dá)正向或反向地轉(zhuǎn)動(dòng),使齒輪組的輸出位置與期望值相符,令糾正脈沖趨于為0,從而達(dá)到使伺服馬達(dá)精確定位的目的。 3、如何控制伺服馬達(dá)標(biāo)準(zhǔn)的微型伺服馬達(dá)有三條控制線,分別為:電源、地及控制。電源線與地線用于提供內(nèi)部的直流馬達(dá)及控制線路所需的能源,電壓通常介于4V—6V之間,該電源應(yīng)盡可能與處理系統(tǒng)的電源隔離(因?yàn)樗欧R達(dá)會(huì)產(chǎn)生噪音)。甚至小伺服馬達(dá)在重負(fù)載時(shí)也會(huì)拉低放大器的電壓,所以整個(gè)系統(tǒng)的電源供應(yīng)的比例必須合理。 輸 入一個(gè)周期性的正向脈沖信號(hào),這個(gè)周期性脈沖信號(hào)的高電平時(shí)間通常在1ms—2ms之間,而低電平時(shí)間應(yīng)在5ms到20ms之間,并不很嚴(yán)格,下表表示出一個(gè)典型的20ms周期性脈沖的正脈沖寬度與微型伺服馬達(dá)的輸出臂位置的關(guān)系:
在參照上表設(shè)計(jì)控制脈沖寬度時(shí)應(yīng)注意以下的注意事項(xiàng)。 4、伺服馬達(dá)的電源引線
電源引線有三條,如圖中所示。伺服馬達(dá)三條線中紅色的線是控制線,接到控制芯片上。中間的是SERVO工作電源線,一般工作電源是5V。 第三條是地線。 5、伺服馬達(dá)的運(yùn)動(dòng)速度伺服馬達(dá)的瞬時(shí)運(yùn)動(dòng)速度是由其內(nèi)部的直流馬達(dá)和變速齒輪組的配合決定的,在恒定的電壓驅(qū)動(dòng)下,其數(shù)值唯一。但其平均運(yùn)動(dòng)速度可通過分段停頓的控制方式來改變,例如,我們可把動(dòng)作幅度為90o的轉(zhuǎn)動(dòng)細(xì)分為128個(gè)停頓點(diǎn),通過控制每個(gè)停頓點(diǎn)的時(shí)間長短來實(shí)現(xiàn)0o—90o變化的平均速度。對(duì)于多數(shù)伺服馬達(dá)來說,速度的單位由“度數(shù)/秒”來決定。
6、使用伺服馬達(dá)的注意事項(xiàng)- 除非你使用的是數(shù)碼式的伺服馬達(dá),否則以上的伺服馬達(dá)輸出臂位置只是一個(gè)不準(zhǔn)確的大約數(shù)。
- 普通的模擬微型伺服馬達(dá)不是一個(gè)精確的定位器件,即使是使用同一品牌型號(hào)的微型伺服馬達(dá)產(chǎn)品,他們之間的差別也是非常大的,在同一脈沖驅(qū)動(dòng)時(shí),不同的伺服馬達(dá)存在±10o的偏差也是正常的。
- 正因上述的原因,不推薦使用小于1ms及大于2ms的脈沖作為驅(qū)動(dòng)信號(hào),實(shí)際上,伺服馬達(dá)的最初設(shè)計(jì)表也只是在±45o的范圍。而且,超出此范圍時(shí),脈沖寬度轉(zhuǎn)動(dòng)角度之間的線性關(guān)系也會(huì)變差。
- 要特別注意,絕不可加載讓伺服馬達(dá)輸出位置超過±90o的脈沖信號(hào),否則會(huì)損壞伺服馬達(dá)的輸出限位機(jī)構(gòu)或齒輪組等機(jī)械部件。
- 由于伺服馬達(dá)的輸出位置角度與控制信號(hào)脈沖寬度沒有明顯統(tǒng)一的標(biāo)準(zhǔn),而且其行程的總量對(duì)于不同的廠家來說也有很大差別,所以控制軟件必須具備有依據(jù)不同伺服馬達(dá)進(jìn)行單獨(dú)設(shè)置的功能。

所有資料51hei提供下載:
021、舵機(jī)控制程序及其仿真.zip
(238.95 KB, 下載次數(shù): 131)
2018-11-7 22:09 上傳
點(diǎn)擊文件名下載附件
|