找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4604|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

詳細(xì)的舵機(jī)控制原理資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:168218 發(fā)表于 2017-3-4 23:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
目錄

一.舵機(jī)PWM信號(hào)介紹... 1
1.PWM信號(hào)的定義... 1
2.PWM信號(hào)控制精度制定... 2
二.單舵機(jī)拖動(dòng)及調(diào)速算法... 3
1.舵機(jī)為隨動(dòng)機(jī)構(gòu)... 3
(1)HG14-M舵機(jī)的位置控制方法... 3
(2)HG14-M舵機(jī)的運(yùn)動(dòng)協(xié)議... 4
2.目標(biāo)規(guī)劃系統(tǒng)的特征... 5
(1)舵機(jī)的追隨特性... 5
(2)舵機(jī)ω值測(cè)定... 6
(3)舵機(jī)ω值計(jì)算... 6
(4)采用雙擺試驗(yàn)驗(yàn)證... 6
3.DAV的定義... 7
4.DIV的定義... 7
5.單舵機(jī)調(diào)速算法... 8
(1)舵機(jī)轉(zhuǎn)動(dòng)時(shí)的極限下降沿PWM脈寬... 8
三.8舵機(jī)聯(lián)動(dòng)單周期PWM指令算法... 10
1.控制要求... 10
2.注意事項(xiàng)... 10
3.8路PWM信號(hào)發(fā)生算法解析... 11
4.N排序子程序RAM的制定... 12
5.N差子程序解析... 13
6.關(guān)于掃尾問題... 14
(1)提出掃尾的概念... 14
(2)掃尾值的計(jì)算... 14
















一.舵機(jī)PWM信號(hào)介紹1.PWM信號(hào)的定義
PWM信號(hào)為脈寬調(diào)制信號(hào),其特點(diǎn)在于他的上升沿與下降沿之間的時(shí)間寬度。具體的時(shí)間寬窄協(xié)議參考下列講述。我們目前使用的舵機(jī)主要依賴于模型行業(yè)的標(biāo)準(zhǔn)協(xié)議,隨著機(jī)器人行業(yè)的漸漸獨(dú)立,有些廠商已經(jīng)推出全新的舵機(jī)協(xié)議,這些舵機(jī)只能應(yīng)用于機(jī)器人行業(yè),已經(jīng)不能夠應(yīng)用于傳統(tǒng)的模型上面了。
目前,北京漢庫的HG14-M舵機(jī)可能是這個(gè)過渡時(shí)期的產(chǎn)物,它采用傳統(tǒng)的PWM協(xié)議,優(yōu)缺點(diǎn)一目了然。優(yōu)點(diǎn)是已經(jīng)產(chǎn)業(yè)化,成本低,旋轉(zhuǎn)角度大(目前所生產(chǎn)的都可達(dá)到185度);缺點(diǎn)是控制比較復(fù)雜,畢竟采用PWM格式。
但是它是一款數(shù)字型的舵機(jī),其對(duì)PWM信號(hào)的要求較低:
(1)   不用隨時(shí)接收指令,減少CPU的疲勞程度;
(2)   可以位置自鎖、位置跟蹤,這方面超越了普通的步進(jìn)電機(jī);


file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif

















其PWM格式注意的幾個(gè)要點(diǎn):
(1)   上升沿最少為0.5mS,為0.5mS---2.5mS之間;
(2)   HG14-M數(shù)字舵機(jī)下降沿時(shí)間沒要求,目前采用0.5Ms就行;也就是說PWM波形可以是一個(gè)周期1mS的標(biāo)準(zhǔn)方波;
(3)   HG0680為塑料齒輪模擬舵機(jī),其要求連續(xù)供給PWM信號(hào);它也可以輸入一個(gè)周期為1mS的標(biāo)準(zhǔn)方波,這時(shí)表現(xiàn)出來的跟隨性能很好、很緊密。

2.PWM信號(hào)控制精度制定
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image003.gif
















1 DIV = 8uS ;250DIV=2mS
時(shí)基寄存器內(nèi)的數(shù)值為:(#01H01 ----#0FAH250

185度,分為250個(gè)位置,每個(gè)位置叫1DIV。

則:185÷250 = 0.74 / DIV

PWM上升沿函數(shù): 0.5mS + N×DIV
                  0uS ≤ N×DIV ≤ 2mS
                0.5mS ≤ 0.5Ms+N×DIV ≤ 2.5mS

二.單舵機(jī)拖動(dòng)及調(diào)速算法1.舵機(jī)為隨動(dòng)機(jī)構(gòu)
(1)當(dāng)其未轉(zhuǎn)到目標(biāo)位置時(shí),將全速向目標(biāo)位置轉(zhuǎn)動(dòng)。
(2)當(dāng)其到達(dá)目標(biāo)位置時(shí),將自動(dòng)保持該位置。
所以對(duì)于數(shù)字舵機(jī)而言,PWM信號(hào)提供的是目標(biāo)位置,跟蹤運(yùn)動(dòng)要靠舵機(jī)本身。
(3)像HG0680這樣的模擬舵機(jī)需要時(shí)刻供給PWM信號(hào),舵機(jī)自己不能鎖定目標(biāo)位置。
所以我們的控制系統(tǒng)是一個(gè)目標(biāo)規(guī)劃系統(tǒng)。

(1)HG14-M舵機(jī)的位置控制方法
舵機(jī)的轉(zhuǎn)角達(dá)到185度,由于采用8為CPU控制,所以控制精度最大為256份。目前經(jīng)過實(shí)際測(cè)試和規(guī)劃,分了250份。具體劃分參見《250份劃分原理》。
將0—185分為250份,每份0.74度。
控制所需的PWM寬度為0.5ms—2.5ms,寬度2ms。
2ms÷250=8us;
所以得出:PWM信號(hào) =1度/8us







file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image004.gif


  
        
舵機(jī)角度= 0.74×N
   
   
   


  
        
PWM = 0.5 + N×DIV;(DIV=8us
   
   
   











  
角度
  
0
45
90
135
180
  
N
  
0
3E
7D
BB
FA
  
PWM
  
0.5ms
1ms
1.5ms
2ms
2.5ms


(2)HG14-M舵機(jī)的運(yùn)動(dòng)協(xié)議





file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image007.jpg


file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image008.gif














運(yùn)動(dòng)時(shí)可以外接較大的轉(zhuǎn)動(dòng)負(fù)載,舵機(jī)輸出扭矩較大,而且抗抖動(dòng)性很好,電位器的線性度較高,達(dá)到極限位置時(shí)也不會(huì)偏離目標(biāo)。

















2.目標(biāo)規(guī)劃系統(tǒng)的特征(1)舵機(jī)的追隨特性
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image009.gif












① 舵機(jī)穩(wěn)定在A點(diǎn)不動(dòng);
② CPU發(fā)出B點(diǎn)位置坐標(biāo)的PWM信號(hào);
③ 舵機(jī)全速由A點(diǎn)轉(zhuǎn)向B點(diǎn);





  
        
△ф = фB - фA
   
   
   

  
        
△T = △ф÷ω
   
   
   

④ CPU發(fā)出B點(diǎn)PWM信號(hào)后,應(yīng)該等待一段時(shí)間,利用此時(shí)間舵機(jī)才能轉(zhuǎn)動(dòng)至B點(diǎn)。

那么,具體的保持(等待)時(shí)間如何來計(jì)算,如下講解:
令:保持時(shí)間為Tw
       當(dāng)T≥△T時(shí),舵機(jī)能夠到達(dá)目標(biāo),并有剩余時(shí)間;
當(dāng)Tw≤△T時(shí),舵機(jī)不能到達(dá)目標(biāo);
理論上:當(dāng)T=T時(shí),系統(tǒng)最連貫,而且舵機(jī)運(yùn)動(dòng)的最快。

實(shí)際過程中由于2個(gè)因素:
① 1個(gè)機(jī)器人身上有多個(gè)舵機(jī),負(fù)載個(gè)不相同,所以ω不同;
② 某個(gè)舵機(jī)在不同時(shí)刻的外界環(huán)境負(fù)載也不同,所以ω不同;
則連貫運(yùn)動(dòng)時(shí)的極限T難以計(jì)算出來。
目前采取的方法是經(jīng)驗(yàn)選取ω值。


(2)舵機(jī)ω值測(cè)定
舵機(jī)的ω值隨時(shí)變化,所以只能測(cè)定一個(gè)平均值,或稱出現(xiàn)概率最高的點(diǎn)。
依據(jù) ① 廠商的經(jīng)驗(yàn)值;
② 采用HG14-M具體進(jìn)行測(cè)試;
測(cè)試實(shí)驗(yàn):① 將CPU開通,并開始延時(shí)Tw;
② 當(dāng)延時(shí)Tw到達(dá)后,觀察舵機(jī)是否到達(dá)目標(biāo);
測(cè)定時(shí)采用一段雙擺程序,伴隨示波器用肉眼觀察T與△T的關(guān)系。

(3)舵機(jī)ω值計(jì)算
一般舵機(jī)定為0.16--0.22/60度;
0.2/60>> 1.2/360>> 0.617/185
ω360/1.2秒,2Π/1.2
ω=300度/秒
那么185度轉(zhuǎn)動(dòng)的時(shí)間為185÷360/1.2 = 0.6167秒。

(4)采用雙擺試驗(yàn)驗(yàn)證








file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image011.gif


   
         
觀察實(shí)驗(yàn)過程中的Tw與△T的關(guān)系
     
     
   



   
         
發(fā)現(xiàn):當(dāng)Tw定在0.618秒時(shí),利用示波器觀察到舵機(jī)能夠運(yùn)動(dòng)至2個(gè)目標(biāo)點(diǎn)。
     
則:Tw=△T= 0.618秒
     
     
   



   
         
實(shí)驗(yàn)過程中,設(shè)定舵機(jī)運(yùn)轉(zhuǎn)的目標(biāo)角度查為185度。
     
     
   



   
         
最終:ω=0.2秒/60度
     
     
   

  

















3.DAV的定義
185度的轉(zhuǎn)角分為250個(gè)平均小份。
則:每小份為0.74度。

定義如下:DAV =0.74
由于:ω = 0.2秒/60度
則:運(yùn)行1 DAV所需時(shí)間為:0.72度÷0.2秒/60度 = 2.4 mS;


4.DIV的定義
舵機(jī)電路支持的PWM信號(hào)為0.5mS—2.5mS,總間隔為2mS
若分為250小份,則2mS÷250 = 0.008 mS = 8uS

定義如下:DIV = 8uS


file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image012.gif














那么1 DAV0.74度)對(duì)應(yīng)的△T為:0.74度÷60度/0.2秒 =2.4 67mS.。


5.單舵機(jī)調(diào)速算法


file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image013.gif




測(cè)試內(nèi)容:將后部下降沿的時(shí)間拉至30ms沒有問題,舵機(jī)照樣工作。
將后部下降沿的時(shí)間拉至10ms沒有問題,舵機(jī)照樣工作。
         將后部下降沿的時(shí)間拉至2.6ms沒有問題,舵機(jī)照樣工作。
         將后部下降沿的時(shí)間拉至500us沒有問題,舵機(jī)照樣工作。
實(shí)踐檢驗(yàn)出:下降沿時(shí)間參數(shù)可以做的很小。目前實(shí)驗(yàn)降至500uS,依然工作正常。
原因是:(1)舵機(jī)電路自動(dòng)檢測(cè)上升沿,遇上升沿就觸發(fā),以此監(jiān)測(cè)PWM脈寬“頭”。
      2)舵機(jī)電路自動(dòng)檢測(cè)下降沿,遇下降沿就觸發(fā),以此監(jiān)測(cè)PWM脈寬“尾”。


(1)舵機(jī)轉(zhuǎn)動(dòng)時(shí)的極限下降沿PWM脈寬


file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image014.gif




T:舵機(jī)運(yùn)轉(zhuǎn)1DAV7.4度)所需要的最小時(shí)間,目前計(jì)算出的數(shù)值為2.467mS
T前面的20 mS等待時(shí)間可以省略,舵機(jī)依然工作;而且得出舵機(jī)跟隨的最快驅(qū)動(dòng)方式。







file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image016.jpg

file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image017.gif

  
















舵機(jī)T數(shù)據(jù)實(shí)驗(yàn)表格
  
Tw值
  
舵機(jī)運(yùn)轉(zhuǎn)特性
T與△T關(guān)系
該程序可行度
備注
  
500us
  
不能跟隨
T< T
不可行


  
800us
  
不能跟隨
T< T
不可行


  
1ms
  
不能跟隨
T< T
不可行


  
  
  
1.1ms
  
跟隨
T T
可行
最快、平滑
  
1.2ms
  
跟隨
T> T
可行
最快、平滑
  
1.6ms
  
跟隨
T> T
可行
最快、平滑
  
2ms
  
跟隨
T> T
可行
最快、平滑
  
2.6ms
  
跟隨
T> T
可行
最快、平滑
  
10ms
  
跟隨
T>> T
可行
較慢、平滑
  
20ms
  
跟隨
T>> T
可行
較慢、平滑
  
30ms
  
跟隨
T>> T
可行
較慢、平滑
  
40ms
  
跟隨
T>> T
可以
較慢、微抖
  
50ms
  
跟隨
T>> T
可以
很慢、微抖
  
  
  
70ms
  
跟隨
T>> T
不可以
很慢、較抖
  
100ms
  
跟隨
T>> T
不可以
很慢、較抖
  
  










令人質(zhì)疑的地方1.1ms時(shí)的表現(xiàn),得出的T T;
也就是說1.1ms =2.467ms,顯然存在問題。
經(jīng)過考慮重新觀察PWM波形圖發(fā)現(xiàn),電機(jī)真正的啟動(dòng)點(diǎn)如下圖:


file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image018.gif








實(shí)際上由AB的運(yùn)動(dòng)時(shí)間為:T = T +B點(diǎn)的)PWM



三.8舵機(jī)聯(lián)動(dòng)單周期PWM指令算法1.控制要求
要求同時(shí)發(fā)給8個(gè)舵機(jī)位置目標(biāo)值,該指令的執(zhí)行周期盡量短,目的有2個(gè):
其一,是為了將來擴(kuò)充至24舵機(jī);其二,目標(biāo)越快,舵機(jī)的轉(zhuǎn)動(dòng)速度越快;
我們以8路為1組或稱1個(gè)單位,連續(xù)發(fā)出目標(biāo)位置,形成連續(xù)的目標(biāo)規(guī)劃曲線,電機(jī)在跟隨過程中自然形成了位置與速度的雙指標(biāo)曲線,實(shí)現(xiàn)8路舵機(jī)聯(lián)動(dòng)。
2.注意事項(xiàng)
從24個(gè)端口,P0.0、P1.0到P2.0,單DIV循環(huán)的最小時(shí)間只有8us,所以串行運(yùn)算是不行的,那么就采用并行運(yùn)算。
目前采用的并行算法是P0.0—P0.7為一個(gè)基本單位,8位一并。
實(shí)際案例:P1口的8個(gè)位置個(gè)不相同;

  
端口
  
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
  
N寄存器
  
37H
36H
35H
34H
33H
32H
31H
30H
  
目標(biāo)位置(度)
  
180
135
90
60
50
45
0.74
0
  
N數(shù)值(整數(shù))
  
250
1875
125
811
676
625
1
0
  
PWM寬度ms
  
2.500
2.000
1.500
1.148
1.041
1.000
0.508
0.500
注意:N為整數(shù),依照上表看出,由于整數(shù)原因,定位不能實(shí)現(xiàn)的有45度、60度等。



file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image020.gif
  

















3.8路PWM信號(hào)發(fā)生算法解析
我們預(yù)計(jì)將整個(gè)周期控制在3.5-5ms內(nèi);
由上圖得知:P1口的8個(gè)端在不同時(shí)間產(chǎn)生下降沿。
那么由上例如:我們的P1.5口,他的N125
那么就需要它在125個(gè)DIV后產(chǎn)生下降沿,時(shí)間為(125*8us=1000us)。
我們?cè)谄渲邪l(fā)現(xiàn)2個(gè)關(guān)鍵參數(shù):①時(shí)間參數(shù)N=125
②邏輯參數(shù) P1.5=#0DFH
邏輯參數(shù)的定義:如下,采用ANL指令,操作P1口。

  
        
      
      
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
備注
      
P1.0= # FEH
      
1
1
1
1
1
1
1
0


      
P1.1= # FDH
      
1
1
1
1
1
1
0
1


      
P1.2= # FBH
      
1
1
1
1
1
0
1
1


      
P1.3= # F7H
      
1
1
1
1
0
1
1
1


      
P1.4= # EFH
      
1
1
1
0
1
1
1
1


      
P1.5= # DFH
      
1
1
0
1
1
1
1
1


      
P1.6= # BFH
      
1
0
1
1
1
1
1
1


      
P1.7= # 7FH
      
0
1
1
1
1
1
1
1


   
   
   
   
ANL端口邏輯參數(shù)表









例如:將P1.5口產(chǎn)生下降沿,就將# 0DFH 去“ANL P1口。
邏輯“ANL”指令,馮“0”得“0”,不影響其他位。

具體的程序操作如下:
① 開3.5ms定時(shí)中斷
② 取出8個(gè)端(P1.0-P1.7)的位置值,也就是8個(gè)N值;并賦予相應(yīng)的端邏輯參數(shù);
  
        
M5=N5-N4
   
M6=N6-N5
   
M7=N7-N6
   
M8=N8-N7
   
   
   
  
        
M1=N1
   
M2=N2-N1
   
M3=N3-N2
   
M4=N4-N3
   
   
   
③ 將這8個(gè)值由大到小排列,相應(yīng)端的邏輯參數(shù)值也隨著N的順序排列,一一對(duì)應(yīng);
④ 將N值做減法,求得:




⑤ 取出 M1,延時(shí)M1*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M2,延時(shí)M2*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M3,延時(shí)M3*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M4,延時(shí)M4*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M5,延時(shí)M5*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M6,延時(shí)M6*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M7,延時(shí)M7*DIV,ANL相應(yīng)的邏輯參數(shù);
取出 M8,延時(shí)M8*DIV,ANL相應(yīng)的邏輯參數(shù);

⑥ 8個(gè)端的下降沿全部產(chǎn)生完畢,等待一定的Tw值,或等待3.5ms中斷的到來;
⑦ 中斷到來后,清理中斷標(biāo)志,然后結(jié)束該程序。RET

注意事項(xiàng):當(dāng)進(jìn)行逐個(gè)排序延時(shí)的過程中,CPU要取出M1、M2、M3….M8,那么會(huì)有1個(gè)取數(shù)指令周期,當(dāng)CPU采用12MHz時(shí)為1us。最終應(yīng)該在第8個(gè)延時(shí),即M8時(shí)扣除掉,具體指令參見指令集。

4.N排序子程序RAM的制定
入口處

  
  
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
  
N值寄存器地址
  
37H
36H
35H
34H
33H
32H
31H
30H
  
ANL邏輯數(shù)寄存器地址
  
3FH
3EH
3DH
3CH
3BH
3AH
39H
38H
  
ANL邏輯數(shù)值
  
#7FH
#BFH
#DFH
#EFH
#F7H
#FBH
#FDH
#FEH
  
  

















備注:37寄存器內(nèi)存放的是P1.7端口的N值;3F寄存器內(nèi)存放的是P1.7端口的ANL邏
輯參數(shù)值;

出口處
從左到右為N值從大到小排列          (大> N值 > 小)
  
N值寄存器地址
  
30H
31H
32H
33H
34H
35H
36H
37H
  
ANL邏輯數(shù)寄存器地址
  
38H
39H
3AH
3BH
3CH
3DH
3EH
3FH
  
ANL邏輯數(shù)值
  
未知
未知
未知
未知
未知
未知
未知
未知
  
  
















所謂的“未知”:由于排列按照大到小順序,“未知”內(nèi)存放的為端口信息要根據(jù)排序
做相應(yīng)的調(diào)整。

備注:30H內(nèi)存放的是某位的N值,其值最大;
37H內(nèi)存放的是某位的N值,其值最小;
38H—3FH內(nèi)存放ANL數(shù),可以根據(jù)其數(shù)值判斷出是具體那個(gè)端口的下降沿。
例如:其值為“#FBH”那么它就是P1.2;



5.N差子程序解析
所謂N差子程序,要觀察PWM口的邏輯時(shí)序特性。要求連續(xù)將8位端口分別產(chǎn)生
下降沿。所以有個(gè)先后問題,解決的方法有2種:
①打開8個(gè)時(shí)間中斷;
②按先后順序排列,先后觸發(fā);
由于CPU不能開啟8個(gè)中斷,所以采用后者方法,那么,就可以得出以下結(jié)論:
第1個(gè) 觸發(fā)位所用的時(shí)間為  N1- 0 =M1;
第2個(gè) 觸發(fā)位所用的時(shí)間為  N2-N1=M2;
第3個(gè) 觸發(fā)位所用的時(shí)間為  N3-N2=M3;
第4個(gè) 觸發(fā)位所用的時(shí)間為  N4-N3=M4;
第5個(gè) 觸發(fā)位所用的時(shí)間為  N5-N4=M5;
第6個(gè) 觸發(fā)位所用的時(shí)間為  N6-N5=M6;
第7個(gè) 觸發(fā)位所用的時(shí)間為  N7-N6=M7;
第8個(gè) 觸發(fā)位所用的時(shí)間為  N8-N7=M8;

                                
入口:30H 31H 32H 33H 34H 35H 36H 37H
由于上接排序字程序,所以已經(jīng)按照從大到小排列,做減法后差所以全為正數(shù)。
大  - 小
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image021.gif30H - 31H      30H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image021.gif31H - 32H      31H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image022.gif32H - 33H      32H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image023.gif33H - 34H      33H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image024.gif34H - 35H      34H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image021.gif35H - 36H      35H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image021.gif36H - 37H      36H
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image022.gif37H      37H


  
        
   
      
出口
      
30H
31H
32H
33H
34H
35H
36H
37H
      
      
原數(shù)
      
      
















   
   
   
   
   




  調(diào)用延時(shí)程序時(shí),37H最先出,30H最后出。

6.關(guān)于掃尾問題(1)提出掃尾的概念
我們提出了1個(gè)掃尾的新概念:當(dāng)CPU執(zhí)行完8個(gè)位的下降沿操作后(最多為2.5ms),會(huì)有向下1個(gè)周期過渡的時(shí)間間隔,其主要為2個(gè)功能:
①保證下降沿的準(zhǔn)確性;
②為舵機(jī)的跟蹤留出足夠的時(shí)間;
當(dāng)PWM信號(hào)以最小變化量即(1DIV=8us)依次變化時(shí),舵機(jī)的分辨率最高,但是速度會(huì)減慢。
例如:先發(fā)一個(gè)PWM信號(hào)N=125,相隔20ms后再發(fā)1個(gè)PWM信號(hào)N=126。那么舵機(jī)在20ms內(nèi)轉(zhuǎn)動(dòng)了0.74度,計(jì)算得出:ω=0.74度/20ms= 37度/秒;
        HG14-M舵機(jī)空載時(shí):ω=300/
發(fā)現(xiàn)與最快速度相差8倍之多!
(2)掃尾值的計(jì)算
  
        
中斷延時(shí)2.8ms
   
   
   
圖中有A點(diǎn)、B點(diǎn),





file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image025.gif


  
        
舵機(jī)從PWM_A發(fā)出后開始轉(zhuǎn)動(dòng),經(jīng)過△T時(shí)間后接收完畢PWM_B信號(hào)后,又重新開始新的轉(zhuǎn)動(dòng)。
   
   
   








  
        
∵Tw=△T - PWM_ B
   
∴l(xiāng)imtTw=2.467ms-0.5ms= 1.967ms
   
   
   
PWM處在最小極限長度時(shí):
PWM_A = 0.5ms
PWM_B = 0.5ms
必要條件:△T≥2.467ms

  
        
∵Tw=△T - PWM_ B
   
∴l(xiāng)imtTw=2.467ms-2.5ms= -0.033ms
   
   
   
PWM處在最長極限長度時(shí):
PWM_A = 2.5ms
PWM_B = 2.5ms
必要條件:△T≥2.467ms
為了保證在2種極限情況下舵機(jī)都能正常工作,我們?nèi)€(gè)較長的延時(shí),其經(jīng)驗(yàn)值為2.8ms;這樣舵機(jī)都能正常跟隨而且速度接近最大值,采用中斷法延時(shí)2.8ms。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:231115 發(fā)表于 2017-9-10 12:17 | 只看該作者
樓主,可以給個(gè)完整版資料嗎,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表