首先先明确一点,360度舵机无法像180度舵机一样控制角度,它只能控制方向和速度。
arduino的<servo.h>
库提供两个函数控制舵机。write()
和writeMicroseconds()
;这两个函数都可以控制360/180这两种舵机。
- 实例代码下载:链接
write()
servo.write(x); //x->[0,180];
360度舵机:
通过x设定舵机的速度(0代表一个方向的全速运行,180代表另一个方向的全速运行,90则不动)。
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.write(90); // 舵机不动
}
void loop() {}
180度舵机:
通过x设定舵机舵盘的角度。
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.write(90); // 在中间位置
}
void loop() {}
值得注意的是如果x不等于90,360度舵机会一直不停的转。而180度舵机在到达设定角度后会停下。
writeMicroseconds()
servo.writeMicroseconds(x) //x->[1000,2000]
360度舵机:
这个函数对于360度舵机的作用就是write()函数的模拟版,[1000,2000]对应[0,180]。比如writeMicroseconds(1500)相当于write(90),舵机不动。
180度舵机 :
通过x设定角度,一般来说1000是完全逆时针旋转后的位置,2000是完全顺时针旋转的位置,1500在中间。
注意有些制造商并不完全遵守这个标准,所以舵机经常会对700到2300之间的数值产生反应。实际数值可以自己试试。
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.writeMicroseconds(1500); // 舵机设定为中间位置。
}
void loop() {}