转载: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 {}