<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PIC單片機的仿生機器魚(yú)的舵機控制

基于PIC單片機的仿生機器魚(yú)的舵機控制

作者: 時(shí)間:2010-07-27 來(lái)源:網(wǎng)絡(luò ) 收藏
3 舵機的
3.1 舵機的工作原理:
舵機主要由以下幾個(gè)部分組成:舵盤(pán)、減速齒輪組、比例電位器(位置反饋電位計)、直流電機(馬達)、電路板等。其工作原理:電路板接受來(lái)自信號線(xiàn)的控制信號,控制直流電機轉動(dòng),直流電機帶動(dòng)一系列齒輪組,其齒輪組的輸出軸與一個(gè)線(xiàn)性的比例電位器相連,該電位器把輸出軸轉過(guò)的角度θ 轉換成比例的電壓反饋給控制電路,控制電路將其與輸入的控制脈沖信號比較,產(chǎn)生糾偏脈沖,并驅動(dòng)馬達正向或反向地轉動(dòng),使齒輪組的輸出位置與期望值相符,令糾正脈沖趨于為0,從而達到使舵機精確定位的目的。舵機是一個(gè)典型閉環(huán)反饋系統,其工作原理由圖3 所示。

本文引用地址:http://dyxdggzs.com/article/173273.htm

舵機的輸入線(xiàn)共有三條,紅色中間,是電源線(xiàn),一邊黑色的是地線(xiàn),這兩根線(xiàn)給舵機提供最基本的能源保證,主要是電機的轉動(dòng)消耗。電源有兩種規格,一是4.8V,一是6.0V,分別對應不同的轉矩標準,另外一根線(xiàn)是控制信號線(xiàn),一般為白色。
3.2 單舵機和多舵機的角度控制
3.2.1 單舵機的角度控制:
由舵機的工作原理可知,給舵機輸入一個(gè)周期在20ms 左右,脈沖寬度在0.5ms 至2.5ms 之間的周期性脈沖信號,驅動(dòng)舵機輸出軸達到-90°到90° 之間的轉角,呈線(xiàn)性變化。并且無(wú)論外界轉矩怎樣改變,舵機的輸出軸都會(huì )保持在一個(gè)相對應的角度上,直到給它提供一個(gè)另外寬度的脈沖信號,才會(huì )改變輸出角度到新的對應的位置上。通過(guò)編程,借助的輸出端口得到需要的周期性脈沖信號。
程序示例:(晶振為:4MHZ,脈沖從PORTDbits.RD0 輸出)
void delay(int j) //此函數用于產(chǎn)生0.25ms*j 的延時(shí)
{
for(i=0;ij;i++)
{

INTCONbits.TMR0IF=0; //清TMR0 中斷標志位
T0CON=0XCF; //設定TMR0L 工作于8 位定時(shí)器方式、內部時(shí)鐘、
TMR0 不用分頻
TMR0L=0X14; //設定TMR0 每0.25ms 產(chǎn)生一次中斷
L1: if(INTCONbits.TMR0IF==1)
{
INTCONbits.TMR0IF==0; //清TMR0 中斷標志位,關(guān)計時(shí)器
T0CON=0X4F;
}
else goto L1;
}
}
PORTDbits.RD0=1; // 輸出脈沖寬度為2ms,周期為20ms 的脈沖信號
delay(8);
PORTDbits.RD0=0;
delay(72);
從上面的程序可知,通過(guò)改變delay 函數的形參j,可以根據需要,得到具有相應脈沖寬度和周期的脈沖信號。例如,改變以上程序段的1 至4 行為:
PORTDbits.RD0=1;
delay(4);
PORTDbits.RD0=0;
delay(76);
得到輸出脈沖寬度為1ms,周期為20ms 的脈沖信號,然后借助for 循環(huán),將能得到所需要的周期性脈沖信號,驅動(dòng)舵機輸出軸達到-90°到90° 之間的轉角。
3.2.2 多舵機不同角度的控制:
通過(guò)多舵機不同角度的控制,可以控制幾個(gè)舵機同時(shí)向不同角度扭轉,以達到預期的控制目的。
具體的實(shí)現方法是:在定時(shí)器延時(shí)函數中設定一個(gè)計時(shí)值t(在程序中t 在初始化時(shí)值為0),使t 在每次定時(shí)器計時(shí)完畢時(shí)加1。例如,定時(shí)器一周期的定時(shí)時(shí)間為0.25ms,則t值每加1 就相當于0.25ms。當t 的代表值達到20ms 也就是當t 等于80 時(shí)清零,這樣就可以將脈沖周期控制在20ms,再通過(guò)使用if 語(yǔ)句查詢(xún)方式,可以調節同一周期脈沖的脈沖寬度,即能使多舵機同時(shí)向不同角度旋轉。
程序示例:(晶振為:4MHZ,脈沖從PORTDbits.RD0,PORTDbits.RD1,PORTDbits.RD2三個(gè)端口中輸出)
if(t=0) //端口初始化
{
PORTDbits.RD0=1
PORTDbits.RD1=1
PORTDbits.RD2=1
}
INTCONbits.TMR0IF=0; //清TMR0 中斷標志位
T0CON=0XCF; //設定TMR0L 工作于8 位定時(shí)器方式、內部時(shí)鐘、TMR0不用分頻
TMR0L=0X14; //設定TMR0 每0.25ms 產(chǎn)生一次中斷
L1: if(INTCONbits.TMR0IF==1)
{
INTCONbits.TMR0IF==0; //清TMR0 中斷標志位,關(guān)計時(shí)器
T0CON=0X4F;
t++
}
else goto L1;
if(t=4)
PORTDbits.RD0=0; //脈沖寬度為:1ms
else if(t=6)
PORTDbits.RD1=0; //脈沖寬度為:1.5ms
else if(t=8)
PORTDbits.RD2=0; //脈沖寬度為:2ms
else(t=80)
t=0; //脈沖周期為:0.25ms*80=20ms



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>