arduino入門實踐之舵機的控制

2022-07-12 07:00:08 字數 1196 閱讀 5360

元件:

arduino mega 2560、舵機、杜邦線

接線:普通舵機有3根線:棕、紅、橙(棕色連線 gnd、紅色連線 vcc、橙色連線訊號 s)

原理:舵機的伺服系統由可變寬度的脈衝來進行控制,控制線是用來傳送脈衝的。脈衝的引數有最小值,最大值,和頻率。一般而言,舵機的基準訊號都是週期為20ms,寬度為1.5ms。這個基準訊號定義的位置為中間位置。舵機有最大轉動角度,中間位置的定義就是從這個位置到最大角度與最小角度的量完全一樣。最重要的一點是,不同舵機的最大轉動角度可能不相同,但是其中間位置的脈衝寬度是一定的,那就是1.5ms。如下圖:

角度是由來自控制線的持續的脈衝所產生。這種控制方法叫做脈衝調製。脈衝的長短決定舵機轉動多大角度。例如:1.5毫秒脈衝會到轉動到中間位置(對於180°舵機來說,就是90°位置)。當控制系統發出指令,讓舵機移動到某一位置,並讓他保持這個角度,這時外力的影響不會讓他角度產生變化,但是這個是由上限的,上限就是他的最大扭力。除非控制系統不停的發出脈衝穩定舵機的角度,舵機的角度不會一直不變。

當舵機接收到乙個小於1.5ms的脈衝,輸出軸會以中間位置為標準,逆時針旋轉一定角度。接收到的脈衝大於1.5ms情況相反。不同品牌,甚至同一品牌的不同舵機,都會有不同的最大值和最小值。一般而言,最小脈衝為1ms,最大脈衝為2ms。如下圖:

arduino控制舵機的兩種方法:

1、第一種是通過arduino的普通數字感測器介面產生占空比不同的方波,模擬產生pwm訊號進行舵機定位。

2、第二種是直接利用arduino自帶的servo函式進行舵機的控制,這種控制方法的優點在於程式編寫,缺點是只能控制2路舵機,因為arduino自帶函式只能利用數字9、10介面。arduino的驅動能力有限,所以當需要控制1個以上的舵機時需要外接電源。

**:

#includeservo myservo;                        //建立乙個舵機物件myservo

int pos = 0

;void

setup()

void

loop()

for(pos = 180;pos>=1;pos-=1)

}

Arduino 舵機的驅動

在機械人機電控制系統中,舵機控制效果是效能的重要影響因素。舵機可以在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出使得微控制器系統非常容易與之介面。舵機是一種位置 角度 伺服的驅動器,適用於那些需要角度不斷變化並可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型 遙...

Oracle PL SQL入門之案例實踐

前面已經了解了關於 pl sql程式設計的基礎,本文將結合乙個案例來加深對這些知識點的理解。一 案例介紹 某資料庫有兩張表,是關於某公司員工資料 薪水和部門資訊的,它們分別是emp表和dept表,兩張表的結構如下 要求如下 1 按照上表結構建立相應的表,並每張表寫入5組合法資料。2 操縱相關表,使得...

Oracle PL SQL入門之案例實踐

一 案例介紹 某資料庫有兩張表,是關於某公司員工資料 薪水和部門資訊的,它們分別是emp表和dept表,兩張表的結 構如下 要求如下 1 按照上表結構建立相應的表,並每張表寫入5組合法資料。2 操縱相關表,使得 技術部 的員工的薪水 20 3 建立日誌,追蹤薪水變動情況。4 建立測試包。二 案例的分...