在機器人機電控制系統中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出使得單片機系統非常容易與之介面。
舵機是一種位置(角度)伺服的驅動器,適用於那些需要角度不斷變化並可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型;遙控機器人中已經使用得比較普遍。舵機是一種俗稱,其實是一種伺服馬達。
1.舵機與控制原理
2.servo類介紹
servo類下有以下成員函數
attach()//
write()//
writeMicroseconds()//
read()//
attached()//
detach()//
舵機是一種位置(角度)伺服的驅動器,適用於那些需要角度不斷變化並可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型;遙控機器人中已經使用得比較普遍。舵機是一種俗稱,其實是一種伺服馬達。
1.舵機與控制原理
2.servo類介紹
servo類下有以下成員函數
attach()//
write()//
writeMicroseconds()//
read()//
attached()//
detach()//
普通舵機有3根線:GND(黑)、VCC(紅)、Signal(黃),一般情況下,我們建議為舵機單獨供電,此處實驗為了圖方便,用arduino為舵機供電。
3.實例1
需要的器材:
arduino控制器、舵機、杜邦線若干
首先將舵機如下圖連接:
ebkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;float:none;word-spacing:0px'>attached()//3.實例1
需要的器材:
arduino控制器、舵機、杜邦線若干
首先將舵機如下圖連接:
detach()//
下載以下常式(程式可以在IDE>File>Examples>Servo>Sweep中找到,我只是做個中文介紹
- #include <Servo.h>
- Servo myservo; //创建一个舵机控制对象
- // 使用Servo类最多可以控制8个舵机
- int pos = 0; // 该变量用与存储舵机角度位置
- /*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- void setup()
- {
- myservo.attach(9); // 该舵机由arduino第九脚控制
- }
- /*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- void loop()
- {
- for(pos = 0; pos < 180; pos += 1) // 从0度到180度运动
- { // 每次步进一度
- myservo.write(pos); // 指定舵机转向的角度
- delay(15); // 等待15ms让舵机到达指定位置
- }
- for(pos = 180; pos>=1; pos-=1) //从180度到0度运动
- {
- myservo.write(pos); // 指定舵机转向的角度
- delay(15); // 等待15ms让舵机到达指定位置
- }
- }
4.實例2
需要的器材:
arduino控制器、舵機、電位器、杜邦線若干
首先將舵機如下圖連接:
需要的器材:
arduino控制器、舵機、電位器、杜邦線若干
首先將舵機如下圖連接:
- #include <Servo.h>
- Servo myservo;
- //创建一个舵机控制对象
- int potpin = 0; //该变量用于存储用电位器读出的模拟值
- int val;
- // 该变量用与存储舵机角度位置
- void setup()
- {
- myservo.attach(9);
- // 该舵机由arduino第九脚控制
- }
- void loop()
- {
- val = analogRead(potpin); //读取电位器控制的模拟值 (范围在0-1023)
- val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
- myservo.write(val);
- // 指定舵机转向的角度
- delay(15);
- // 等待15ms让舵机到达指定位置
}
没有评论:
发表评论