1. 程式人生 > >arduino教程-4.舵機

arduino教程-4.舵機

目錄


舵機(Servo)是一種用於精確移動、定位的動力裝置。

4.1 認識舵機

舵機的結構及原理
  舵機安裝了一個電位器(或其它角度感測器)檢測輸出軸轉動角度,控制板根據電位器的資訊能比較精確的控制和保持輸出軸的角度。這樣的直流電機控制方式叫閉環控制,所以舵機更準確的說是伺服馬達,英文 servo.舵機組成: 舵盤、 減速齒輪、 位置反饋電位計、直流電機、 控制電路板等。
在這裡插入圖片描述


在這裡插入圖片描述

4.2 舵機接線方法

  1. 黑線(地線)
    紅線(電源線)兩個標準:4.8V和6V藍線/黃線(訊號線)
  2. 棕線(地線)
    紅線(電源線)兩個標準:4.8V和黃線(訊號線)。

4.3 控制電路板

接受來自訊號線的控制訊號,控制電機轉動,電機帶動一系列齒輪組,減速後傳動至輸出舵盤。舵機的輸出軸和位置反饋電位計是相連的,舵盤 轉動的同時,帶動位置反饋電位計,電位計將輸出一個電壓訊號到控制電路板,進行反饋,然後控制電路板根據所在位置決定電機轉動的方向和速度,從而達到目標停止。
  其工作流程為:控制訊號→控制電路板→電機轉動→齒輪組減速→舵盤轉動→位置反饋電位計→控制電路板反饋。

4.4 認識控制舵機的PPM訊號

所有遙控模型的舵機都接受一種叫做脈衝位置調製(Pulse Position Modulation,簡稱PPM)的訊號,來指揮它的轉動角度。脈衝就是電位的高低變化;伺服控制指令的一個脈衝週期約20ms(即處理器每秒約送出50次指令),而一個指令週期裡的前1~2ms脈衝寬度,代表舵機的轉動角度。

活動4-1:自制機械手臂

  1. 實驗說明: 使用兩個舵機,加上容易取得的支撐材料,如紙板,來製作一個可擺動的手臂結構。
  2. 實驗材料:
名稱 說明 數量
舵機 90G(紅色電壓 粽色 地線 橙色是訊號線) 2
10KΩ可變電阻 或遊戲杆模組 2
外接5V電源 1個
  1. 實驗電路: 將遊戲杆模組的x,y的輸出分別接在模擬A0與A1埠;舵機訊號輸入端子接在數字2~13埠,Arduino板子的電源輸出無法同時供應兩組舵機使用,需要外接5V電源,且外部電源的接地要和Arduino板的接地相連
  2. 實驗程式:
#include <Servo.h>
Servo servoX, servoY;
const byte pinX = A0;
const byte pinY = A1;
int valX, posX;
int valY, posY;
void setup(){
	servox.attach(8);
	servoY.attach(9);
}
void loop() {
	valX = analogRead(pinX);
	valY =  analogRead(pinY);
	posX = map(valX, 0, 1023, 0, 179);
	posY = map(valY, 0, 1023, 0, 179);
	servoX.write(posX);
	servoY.write(posY);
}