arduino教程-4.舵機
阿新 • • 發佈:2018-12-22
目錄
舵機(Servo)是一種用於精確移動、定位的動力裝置。
4.1 認識舵機
舵機的結構及原理
舵機安裝了一個電位器(或其它角度感測器)檢測輸出軸轉動角度,控制板根據電位器的資訊能比較精確的控制和保持輸出軸的角度。這樣的直流電機控制方式叫閉環控制,所以舵機更準確的說是伺服馬達,英文 servo.舵機組成: 舵盤、 減速齒輪、 位置反饋電位計、直流電機、 控制電路板等。
4.2 舵機接線方法
- 黑線(地線)
紅線(電源線)兩個標準:4.8V和6V藍線/黃線(訊號線) - 棕線(地線)
紅線(電源線)兩個標準:4.8V和黃線(訊號線)。
4.3 控制電路板
接受來自訊號線的控制訊號,控制電機轉動,電機帶動一系列齒輪組,減速後傳動至輸出舵盤。舵機的輸出軸和位置反饋電位計是相連的,舵盤 轉動的同時,帶動位置反饋電位計,電位計將輸出一個電壓訊號到控制電路板,進行反饋,然後控制電路板根據所在位置決定電機轉動的方向和速度,從而達到目標停止。
其工作流程為:控制訊號→控制電路板→電機轉動→齒輪組減速→舵盤轉動→位置反饋電位計→控制電路板反饋。
4.4 認識控制舵機的PPM訊號
所有遙控模型的舵機都接受一種叫做脈衝位置調製(Pulse Position Modulation,簡稱PPM)的訊號,來指揮它的轉動角度。脈衝就是電位的高低變化;伺服控制指令的一個脈衝週期約20ms(即處理器每秒約送出50次指令),而一個指令週期裡的前1~2ms脈衝寬度,代表舵機的轉動角度。
活動4-1:自制機械手臂
- 實驗說明: 使用兩個舵機,加上容易取得的支撐材料,如紙板,來製作一個可擺動的手臂結構。
- 實驗材料:
名稱 | 說明 | 數量 |
---|---|---|
舵機 | 90G(紅色電壓 粽色 地線 橙色是訊號線) | 2 |
10KΩ可變電阻 | 或遊戲杆模組 | 2 |
外接5V電源 | 1個 |
- 實驗電路: 將遊戲杆模組的x,y的輸出分別接在模擬A0與A1埠;舵機訊號輸入端子接在數字2~13埠,Arduino板子的電源輸出無法同時供應兩組舵機使用,需要外接5V電源,且外部電源的接地要和Arduino板的接地相連
- 實驗程式:
#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);
}