2016年3月18日 星期五

SG-90 馬達 和 57BYGH82



一般伺服馬達有三條線,電源(紅色)、接地(黑或棕色)、訊號線(白、黃、橘、藍,甚至是黑色)。透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,這個訊號脈波必須每秒重複50次(也就是50Hz),而脈衝持續時間長短便代表了馬達該將軸柄轉到什麼位置,範圍從1.0ms到2.0ms(millisecond,毫秒,千分之一秒),若想置中則是1.5ms;也可將1.0ms當做角度0度,那麼1.5ms會是90度,2.0ms則是轉到底180度。注意,也有可能反過來。


不過每個廠牌型號的伺服馬達可允許旋轉的角度各不相同,也就是說可接受的訊號脈衝範圍也不相同,必須查閱產品資料規格書,若超出範圍可能會損害伺服馬達。底下是Tower Pro SG90的規格
  • 重量:9g
  • 尺寸:23*12.2*29mm
  • 工作電壓:4.8V
  • 轉矩:1.8kg-cm,當工作電壓為4.8V
  • 運轉速度:0.1秒 ∕ 60度 ,當工作電壓為4.8V時
  • 脈衝寬度範圍:500~2400µs 
  • 死頻帶寬度(dead band width):10µs
從中我們可知,可允許的脈衝範圍是500~2400µs,也就是0.5~2.4ms,比剛剛說的一般範圍還要寬,也就代表這個伺服馬達能旋轉的角度更大。另外有項值得一提的數據是死頻帶寬度,意思是說,因為訊號可能不穩上下起伏,當這一次脈衝寬度與上一次相差不超過死頻帶寬度時,伺服馬達便不會動作。

硬體線路很簡單,因為只有一個伺服馬達,我直接由Arduino的5V腳位供電。若想使用超過兩個,則應以另外的電源供電,而且要記得共同接地。

電路圖如下,除了電源5V與接地外,訊號線接往Arduino的數位腳位9
 

照片如下,Tower Pro SG90的三條線顏色分別是黃、紅、棕,對應訊號、電源、接地


接下來是軟體的部份,先讓伺服馬達來回旋轉吧。

#include <Servo.h>

Servo myservo; // 建立Servo物件,控制伺服馬達

void setup() 

  myservo.attach(9, 500, 2400); // 修正脈衝寬度範圍


void loop() 
{
  for(int i = 500; i <= 2400; i+=100){
    myservo.writeMicroseconds(i); // 直接以脈衝寬度控制

    delay(300);
  }
  for(int i = 2400; i >= 500; i-=100){
    myservo.writeMicroseconds(i);

    delay(300);
  }
}




  A :  BLK
  A- :  GRN
  B :   RED
  B- : BLU


Reference : http://yehnan.blogspot.tw/2013/09/arduinotower-pro-sg90.html

沒有留言:

張貼留言