舵機是遙控航空、航天模型控制動作,改變方向的重要組成部件,舵機是一種位置(角度)伺服的驅動器。
舵機主要是由外殼、
引腳接線說明:
紅色:供電;
粽色:地線;必須與控制器, 如SMT32晶片共地;
橙色:PWM訊號線;
由接收機發出訊號給舵機,經由電路板上的 IC驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回訊號,判斷是否已經到達定位。位置檢測器其實就是可變電阻,當舵機轉動時電阻值也會隨之改變,藉由檢測電阻值便可知轉動的角度。
大多數舵機PWM控制協定,都已經標準化。舵機一般有三根引線,分別為電源線、地線、訊號線。通過PWM來控制舵機輸出軸的旋轉角度,下圖是MG996R舵機PWM控制波形。
使用Arduino編譯平臺中的servo.h舵機庫進行對舵機的控制
將舵機從0°~90°再回轉的控制程式碼如下:
#include <Servo.h> Servo myservo; // 定義Servo物件來控制 int pos = 0; // 角度儲存變數pos void setup() { myservo.attach(9); // 控制線(橙色)連線數位引腳9接受PWM訊號 } void loop() { for (pos = 0; pos <= 90; pos ++) { // 角度pos從0°到90° // in steps of 1 degree myservo.write(pos); // 舵機角度寫入 delay(10); // 等待10ms轉動到指定角度 } for (pos = 90; pos >= 0; pos --) { // 從90°到0° myservo.write(pos); // 舵機角度寫入 delay(10); // 等待10ms轉動到指定角度 } }
本文來自部落格園,作者:slowlydance2me,轉載請註明原文連結:https://www.cnblogs.com/slowlydance2me/p/17151523.html