課程目標(biāo)
- 舵機(jī)的組成與工作原理
- 舵機(jī)的控制方式與應(yīng)用
相關(guān)知識(shí)
**舵機(jī):**是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。
**舵機(jī)的結(jié)構(gòu)組成:**一般來講舵機(jī)主要由以下幾個(gè)部分組成,舵盤、減速齒輪組、位置反饋電位計(jì)、直流電機(jī)、控制電路等。
**舵機(jī)工作原理:**舵機(jī)安裝了一個(gè)電位器(或其它角度傳感器)檢測(cè)輸出軸轉(zhuǎn)動(dòng)角度,控制板根據(jù)電位器的信息能比較精確的控制和保持輸出軸的角度。這樣的直流電機(jī)控制方式叫閉環(huán)控制,所以舵機(jī)更準(zhǔn)確的說是伺服馬達(dá)。
舵機(jī)角度控制: 舵機(jī)轉(zhuǎn)動(dòng)的角度是通過調(diào)節(jié)PWM(脈沖寬度調(diào)制)信號(hào)的占空比來實(shí)現(xiàn)的。標(biāo)準(zhǔn)的PWM信號(hào)的周期固定為20ms,理論上脈寬分布應(yīng)該在1ms到2ms之間,實(shí)際上可由0.5ms到2.5ms之間,脈寬與轉(zhuǎn)角0°—180°相對(duì)應(yīng)。不同廠家不同型號(hào)的舵機(jī)也會(huì)有所差異。
電路搭建
所需材料:
ArduinoUNO * 1
SG90舵機(jī) *1
杜邦線若干
電路連接:
舵機(jī)一般都外接三根線,分別用棕、紅、橙三種顏色進(jìn)行區(qū)分,由于品牌不同,顏色也會(huì)有所差異,棕色為接地線,紅色為電源正極線,橙色為信號(hào)線。Arduino如果需要控制多個(gè)舵機(jī),需要外接電源以及使用專用的舵機(jī)控制板。
程序編寫
練習(xí)一:舵機(jī)往返運(yùn)動(dòng)
編寫控制程序,實(shí)現(xiàn)舵機(jī)在0°和180°間不間斷轉(zhuǎn)動(dòng)。
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:舵機(jī)0~180°往返運(yùn)動(dòng)
* 項(xiàng)目時(shí)間:2022.03.22
* 項(xiàng)目作者:MRX
*/
#include < Servo.h >
Servo myservo; // 定義Servo對(duì)象來控制
int pos = 0; // 角度存儲(chǔ)變量
void setup() {
myservo.attach(6); // 控制線連接數(shù)字6
}
void loop() {
for (pos = 0; pos <= 180; pos ++) { // 0°到180°
myservo.write(pos); // 舵機(jī)角度寫入
delay(5); // 等待轉(zhuǎn)動(dòng)到指定角度
}
for (pos = 180; pos >= 0; pos --) { // 從180°到0°
myservo.write(pos); // 舵機(jī)角度寫入
delay(5); // 等待轉(zhuǎn)動(dòng)到指定角度
}
}
練習(xí)二:可控的舵機(jī)
通過旋轉(zhuǎn)電位器來控制舵機(jī)的轉(zhuǎn)動(dòng)角度。
電路連接:
舵機(jī)連接到UNO的6號(hào)腳,電位器連接UNO的A0。
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:電位器控制舵機(jī)運(yùn)動(dòng)
* 項(xiàng)目時(shí)間:2022.03.22
* 項(xiàng)目作者:MRX
*/
#include < Servo.h >
Servo myservo; // 定義Servo對(duì)象來控制
int pos = 0;
void setup() {
myservo.attach(6); // 控制線連接數(shù)字6
pinMode(A0,INPUT);
}
void loop() {
pos = map(analogRead(A0),0,1024,0,180);//將電位器讀取的值映射為舵機(jī)選擇角度
myservo.write(pos); // 舵機(jī)角度寫入
delay(5); // 等待轉(zhuǎn)動(dòng)到指定角度
}
程序分析:
用Arduino控制舵機(jī)一般有兩種方法:
- 通過Arduino的普通數(shù)字引腳產(chǎn)生占空比不同的方波,模擬產(chǎn)生PWM信號(hào)進(jìn)行舵機(jī)控制。
- 直接利用Arduino自帶的Servo庫進(jìn)行控制。
Servo庫常用函數(shù):
- Attach(接口)—設(shè)定舵機(jī)接口。
- Write(角度)—用于設(shè)定舵機(jī)旋轉(zhuǎn)的角度,可設(shè)定范圍0°—180°。
- Read()—用于讀取舵機(jī)角度的語句,可理解為讀取最后一條write()命令中的值。
-
電位器
+關(guān)注
關(guān)注
14文章
1012瀏覽量
66842 -
控制電路
+關(guān)注
關(guān)注
82文章
1714瀏覽量
135944 -
舵機(jī)
+關(guān)注
關(guān)注
17文章
270瀏覽量
41077 -
伺服驅(qū)動(dòng)器
+關(guān)注
關(guān)注
22文章
486瀏覽量
31647 -
Arduino
+關(guān)注
關(guān)注
188文章
6471瀏覽量
187259
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論