close

14.JPG

舵機是一種位置伺服的驅動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構成。其工作原理是由接收機或者單片機發出信號給舵機,其內部有一個基準電路,產生週期為20ms,寬度為1.5ms 的基准信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經由電路板上的IC 判斷轉動方向,再驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經到達定位。適用於那些需要角度不斷變化並可以保持的控制系統。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。一般舵機旋轉的角度範圍是0 度到180 度。

05.jpg

舵機都有外接三根線,分別用棕、紅、橙三種顏色進行區分,棕色為接地線,紅色為電源正極線,橙色為信號線。

1. 實驗材料

Arduino*1

402868.jpg

USB傳輸線*1

402867.jpg

麵包板跳線*N

402985.jpg

舵機*1

407893.jpg

2. 電路接線圖

04.jpg

3. 匯入舵機程式庫

草稿碼->匯入程式庫->管理程式庫

01.jpg

在上方搜尋輸入"Servo",選擇第一個進行安裝,安裝完成就可使用舵機程式庫

02.jpg

介紹一下舵機函數的幾個常用語句
attach(接口): 設定舵機的接口,只有數字9 或10 接口可利用
write(角度): 用於設定舵機旋轉角度的語句,可設定的角度範圍是0°到180°
read(): 用於讀取舵機角度的語句,可理解為讀取最後一條write()命令中的值
attached(): 判斷舵機參數是否已發送到舵機所在接口
etach(): 使舵機與其接口分離,該接口(數字9 或10 接口)可繼續被用作PWM 接口

以上程式語句書寫格式為“舵機變數.舵機函數語句()”例如:myservo.attach(9)//定義舵機接口

4. Arduino參考程式

#include <Servo.h>
Servo myservo;//定義舵機變數
unsigned char i=0;
void setup()
{
  myservo.attach(9);//定義舵機接口
}
void loop()
{
  //舵機正旋轉
  for(i=0; i<180; i++)
  {
    myservo.write(i);//設置舵機旋轉的角度
    delay(10);   
  }
  //舵機逆旋轉
  for(i=180; i>0; i--)
  {
    myservo.write(i);//設置舵機旋轉的角度
    delay(10);   
  }
}

03.JPG

5. 實驗結果

407895.jpg

會看到舵機左右旋轉移動

 

 

 

arrow
arrow
    創作者介紹
    創作者 鄭智遠 的頭像
    鄭智遠

    Michael_Jheng的部落格

    鄭智遠 發表在 痞客邦 留言(0) 人氣()