舵機是一種位置伺服的驅動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構成。其工作原理是由接收機或者單片機發出信號給舵機,其內部有一個基準電路,產生週期為20ms,寬度為1.5ms 的基准信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經由電路板上的IC 判斷轉動方向,再驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經到達定位。適用於那些需要角度不斷變化並可以保持的控制系統。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。一般舵機旋轉的角度範圍是0 度到180 度。
舵機都有外接三根線,分別用棕、紅、橙三種顏色進行區分,棕色為接地線,紅色為電源正極線,橙色為信號線。
1. 實驗材料
Arduino*1
USB傳輸線*1
麵包板跳線*N
舵機*1
2. 電路接線圖
3. 匯入舵機程式庫
草稿碼->匯入程式庫->管理程式庫
在上方搜尋輸入"Servo",選擇第一個進行安裝,安裝完成就可使用舵機程式庫
介紹一下舵機函數的幾個常用語句
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);
}
}
5. 實驗結果
會看到舵機左右旋轉移動
留言列表