360度舵機和180度舵機控制方法小結(轉)


轉載:http://blog.csdn.net/u012223913/article/details/51242054

首先先明確一點,360度舵機無法像180度舵機一樣控制角度,它只能控制方向和速度。

arduino的<servo.h>庫提供兩個函數控制舵機。write()writeMicroseconds();這兩個函數都可以控制360/180這兩種舵機。

write()

 1 servo.write(x); //x->[0,180]; 

360度舵機:

通過x設定舵機的速度(0代表一個方向的全速運行,180代表另一個方向的全速運行,90則不動)。

 1 #include <Servo.h> 
 2 
 3 Servo myservo;
 4 
 5 void setup() 
 6 { 
 7   myservo.attach(9);
 8   myservo.write(90);  // 舵機不動
 9 } 
10 
11 void loop() 
12 {} 

180度舵機:

通過x設定舵機舵盤的角度。

#include <Servo.h> 

Servo myservo;

void setup() 
{ 
  myservo.attach(9);
  myservo.write(90);  // 在中間位置
} 

void loop() 
{} 

值得注意的是如果x不等於90,360度舵機會一直不停的轉。而180度舵機在到達設定角度后會停下。

writeMicroseconds()

 1 servo.writeMicroseconds(x) //x->[1000,2000] 

360度舵機:

這個函數對於360度舵機的作用就是write()函數的模擬版,[1000,2000]對應[0,180]。比如writeMicroseconds(1500)相當於write(90),舵機不動。

180度舵機 :

通過x設定角度,一般來說1000是完全逆時針旋轉后的位置,2000是完全順時針旋轉的位置,1500在中間。

注意有些制造商並不完全遵守這個標准,所以舵機經常會對700到2300之間的數值產生反應。實際數值可以自己試試。

 1 #include <Servo.h> 
 2 
 3 Servo myservo;
 4 
 5 void setup() 
 6 { 
 7   myservo.attach(9);
 8   myservo.writeMicroseconds(1500);  // 舵機設定為中間位置。
 9 } 
10 
11 void loop() 
12 {}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM