置頂文字

歡迎來訪 !! 如有任何問題歡迎一起討論或是 eMail 給我 legorunmail@Gmail.com

2010年11月18日 星期四

NXC 馬達角度Function

在NXC裡面有兩個驅動馬達角度讀取Function常常被使用 MotorTachocoCount()、MotorRotationCount(),這兩個Function差在哪裡呢???


首先看看MotorTachoCount定義:
long MotorTachoCount ( byte  output  )
Get motor tachometer counter.
Get the tachometer count value of the specified output.


再看看MotorRatationCount定義:
long MotorRotationCount ( byte  output  )
Get motor program-relative counter.
Get the program-relative position counter value of the specified output

都是取讀馬達目前位置的累計角度值這也是常被搞混的地方,但這一定有差異因為相同的Function何必寫兩次呢,其中最大的差異在
  1.  MotorTachoCount有方向性當馬達轉動角度一改變方向時「就會歸零」而重新累計角度值,例如當順時針轉動馬達讀取MotorTachoCount(OUT_A)的Value=500時再反向轉動30度,這時讀取MotorTachoCount(OUT_A)的Value會變成-30。
  2.  MotorRotationCount也有方向性但當馬達轉動角度一改變方向時「不會歸零」而是減去角度值,例如當順時針轉動馬達讀取 MotorTachoCount(OUT_A)的Value=500時再反向轉動30度,這時讀取MotorTachoCount(OUT_A)的 Value會變成470。

所以兩者的差異是我們在使用Function時要瞭解的地方。

以上的測試是用NXT傳送正負Power值或是正負角度值給RotateMotor函數使用時得到的結果。
如果你用手轉動驅動馬達順時針或逆時針時的結果會不一樣,因為這兩個函數讀取的角度值都相同而且是累計值加減,不會像MotorTachoCount一遇到反向就規零重新累計數值。

沒有留言:

張貼留言