2021年6月24日

SG90 角度旋轉伺服機 ( 舵機 )

「伺服機」,又可稱「伺服馬達」,也稱為「舵機」;但是又有別於馬達的功能,因為伺服機可以控制角度 or 控制旋轉圈數。可以控制角度的伺服機,就叫做「角度旋轉伺服機」、「角度旋轉舵機」;可以控制旋轉圈數的伺服機,就做較「連續旋轉伺服機」、「連續旋轉舵機」,或稱為「360度舵機」等類似的名詞。

這次的主角是 SG90 ,是一顆角度旋轉伺服機。


接線的方式很簡單,就是一般的 GVS 三條線。


看一下使用影片:


Arduino 程式語法

#include <Servo.h>

Servo servo_9;

void setup() {
  servo_9.attach(9);
}


void loop() {

  servo_9.write(180);
  delay(3000);
  servo_9.write(100);
  delay(3000);

}


角度旋轉伺服機要使用之前,要先確認手上這顆伺服機「能使用的角度範圍」。理論上這些角度旋轉舵機能從 0度 旋轉到 180度,但是畢竟 SG90 只是低成本的產品,精密度不算夠高,所以在可使用的角度範圍,可能會略為縮減,例如:2-180度。因為當 SG90 要轉到 0 度時,可能無法精確判斷到位,所以你會摸到 SG90 不斷地在轉動感(抖動),這就代表 SG90 還沒有精確到位,不斷地在修正,這會造成 SG90 開始發熱,減短使用壽命。所以拿到角度旋轉舵機時,建議從頭開始測試,轉到 0 度,是否精確到位,或是找到一個能精確到位不再移位的角度位置;相同道理,180 度也必須測試,才能知道精確的最大角度範圍。

上面影片中,可以看到角度從 90度,再往倒到170度的位置,但是實際的程式卻是從 100度 轉到 180度。為什麼會有這樣的誤差?

先回到上個步驟,我們測試可用範圍從 0度-180度的過程,然後固定在 90度,並且把槳片與螺絲鎖上去;誤差值就在這邊,槳片的齒輪、 SG90 旋轉軸的齒輪,並不夠到 360度那麼精確,鎖上去之後,90度就有了誤差,這就造成了我們要把槳片轉到垂直位置時,必須修正舵機角度為槳片的真實 90度的數值。

沒有留言: