2018年7月31日 星期二

Arduino 控制SERVO伺服馬達

SERVO伺服馬達,原先是用在遙控玩具上的一顆可以控制擺臂到特定角度的馬達,通常控制遙控車的引擎油門大小、遙控車轉向的方向或是控制煞車碟盤,後來被發現這個馬達的特性可以用來做很多事情,小弟在10年前曾經用這個馬達製作人型機器人,也運用這種馬達做出各種不同的機構,參加很多比賽。

這種馬達除了電源的兩隻腳,只需要一根訊號就可以控制馬達,如下圖,但實際上根據以前使用的經驗,每個廠牌的馬達精準度上都有差異,還要根據每一顆馬達做微調,後來廠商為了製作人形機器人的需求,還做出了可以不控制馬達的情況下回傳當下位置的功能,或者是數位款的馬達,在控制上更精準。




實際實驗環境



接線方式

今天採用的是Arduino NANO + GWS 2BBMG的SERVO Motor
接線非常簡單,一共也才三條線,SERVO的訊號線有兩種顏色的格式,大致上是兩家不同遙控模型大廠的規範,另外在實驗環境中我插了一顆很大顆的電容,其實是由於馬達的訊號很髒,通常我們在設計系統的時候會將馬達的電源獨立出來,電子的電源一組,馬達的電源一組,在這裡採用USB5V的電源,其實通常電腦只供應(100mA),要看USB起始溝通的內容而定,不論USB 5V供應的電流多大,常常雜訊還是會把MCU打到當機,在沒有負載馬達的情況下,我加了一顆大電容,只是暫時可以控制,實際在設計電路時,還是必須將馬達的電獨立出來。

******************接線方式******************
NANO                    SERVO

D9------------------DATA(橘色或白)
+5V------------------VCC(紅色)
GND------------------GND(棕色或黑色)
********************************************


範例程式

本次採用的是內建的測試程式,可以控制伺服馬達左右來回擺動,有稍微調整程式

/* Sweep
 by BARRAGAN <http://barraganstudio.com>
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Sweep
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(100);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(100);                       // waits 15ms for the servo to reach the position
  }
}


實際測試影片




















沒有留言:

張貼留言

專題許願池,請不要吝嗇將你想製作的專題用回覆的方式寫在下方

專題許願池 開這個板是為了幫助一些人,有專題製作需求,但是又不知道要如何實現 如果您有想製作的專題,請您將您的題目回覆在下方,先提出您的需求,進而討論可行性或製做的方向,或是您進行到什麼階段,有遇到什麼樣的問題也可以提出來討論,如果我知道會盡量幫助您順利完成。 不限...