例程18 舵機控制(待研究)

2021-08-28 04:22:56 字數 1513 閱讀 4990

1. 準備

舵機介紹

舵機是一種位置伺服的驅動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構成。其工作原理是由接收機或者微控制器發出訊號給舵機,其內部有乙個基準電路,產生週期為20ms,寬度為1.5ms 的基準訊號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經由電路板上的ic 判斷轉動方向,再驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回訊號,判斷是否已經到達定位。適用於那些需要角度不斷變化並可以保持的控制系統。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。一般舵機旋轉的角度範圍是0 度到180 度。

舵機有很多規格,但所有的舵機都有外接三根線,分別用棕、紅、橙三種顏色進行區分,由於舵機品牌不同,顏色也會有所差異,棕色為接地線,紅色為電源正極線,橙色為訊號線。 

舵機的轉動的角度是通過調節pwm(脈衝寬度調製)訊號的占空比來實現的,標準pwm(脈衝寬度調製)訊號的週期固定為20ms(50hz),理論上脈寬分布應在1ms到2ms 之間,但是,事實上脈寬可由0.5ms 到2.5ms 之間,脈寬和舵機的轉角0°~180°相對應。有一點值得注意的地方,由於舵機牌子不同,對於同一訊號,不同牌子的舵機旋轉的角度也會有所不同。 

了解了基礎知識以後我們就可以來學習控制乙個舵機了,本實驗所需要的元器件:

rb—412 舵機*1 

麵包板跳線*1 扎

用arduino 控制舵機的方法有兩種,一種是通過arduino 的普通數字感測器介面產生占空比不同的方波,模擬產生pwm 訊號進行舵機定位,第二種是直接利用arduino 自帶的servo 函式進行舵機的控制,這種控制方法的優點在於程式編寫,缺點是只能控制2 路舵機,因為arduino 自帶函式只能利用數字9、10 介面。arduino 的驅動能力有限,所以當需要控制1 個以上的舵機時需要外接電源。

如右圖所示將舵機接數字 9 介面上。

編寫乙個程式讓舵機轉動到使用者輸入數字所對應的角度數的位置,並將角度列印顯示到螢幕上。

int servopin=9;//設定舵機驅動腳到數字口9

int myangle;//定義角度變數

int pulsewidth;//定義脈寬變數

int val;

void servopulse(int servopin,int myangle)/*定義乙個脈衝函式,用來模擬方式產生pwm值*/

void setup()

void loop()}}

舵機控制So easy

難者不會,會者不難。就只看你願不願意嘗試,硬體的樂趣又何止於此。硬體於我何加焉?1.原理 一張 理解下原理。2.控制 注意 本人所用舵機為紅色vcc,橙色訊號線,棕色gnd 上程式 定時器0模擬pwm輸出 include sbit pwmout p1 0 unsigned char highrh 0...

舵機控制原理

在機械人和各種自動化裝置中,舵機起著非常重要的作用,我把關於舵機的資料整理出來,方便以後的使用。像這種是比較常見的舵機 舵機與一般的直流減速電機不同,除去電機和減速機構還有一套控制電路,是一種典型的機電一體化產品,通過控制電路的精確控制,舵機可以鎖定在某個角度或者以某個速度連續旋轉。也正是因為這種特...

360 舵機控制

360 舵機要如何控制它旋 1 控制訊號是一種脈寬調變 pwm 訊號,凡是微控制器能輕鬆的產生這種訊號。在此文中,常用的arduino開發環境下的微控制器。2 脈衝的高電平持續1到2毫秒 ms 也就是1000到2000微秒 s 在1000 s時,舵機左滿舵。在2000 s時,右滿舵。不過可以通過調整...