轉載:http://blog.csdn.net/u012223913/article/details/51242054html
首先先明確一點,360度舵機沒法像180度舵機同樣控制角度,它只能控制方向和速度。
arduino的<servo.h>
庫提供兩個函數控制舵機。write()
和writeMicroseconds()
;這兩個函數均可以控制360/180這兩種舵機。函數
write()
1 servo.write(x); //x->[0,180]; oop
360度舵機:
經過x設定舵機的速度(0表明一個方向的全速運行,180表明另外一個方向的全速運行,90則不動)。post
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設定舵機舵盤的角度。ui
#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); myservo.write(90); // 在中間位置 } void loop() {}
值得注意的是若是x不等於90,360度舵機會一直不停的轉。而180度舵機在到達設定角度後會停下。url
writeMicroseconds()
1 servo.writeMicroseconds(x) //x->[1000,2000] spa
360度舵機:
這個函數對於360度舵機的做用就是write()函數的模擬版,[1000,2000]對應[0,180]。好比writeMicroseconds(1500)至關於write(90),舵機不動。.net
180度舵機 :
經過x設定角度,通常來講1000是徹底逆時針旋轉後的位置,2000是徹底順時針旋轉的位置,1500在中間。code
注意有些製造商並不徹底遵照這個標準,因此舵機常常會對700到2300之間的數值產生反應。實際數值能夠本身試試。htm
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 {}