注意:本文为原始参考手册的翻译,一切以官网原文为主
点此访问原始地址
Servo库参考
Servo库可以用来使Arduino板控制伺服舵机(业余)。舵机包含的齿轮和一个可以被精确控制角度的轴。标准舵机可以使轴定位在不同的角度上,通常是在0到180度之间。一个连续旋转舵机允许轴的旋转被设置成不同的速度。
Servo库在绝大部分Arduino板上支持多达12个舵机,在Arduino Mega上支持48个,除了Arduino Mega板上,使用这个库会使第9和第10脚上的analogWrite()(PWM)功能失效,无论这个两个引脚是否连接着舵机。在Mega上,有多达12个舵机可以在不影响PWM功能的情况下被使用,使用12-23个舵机会使第11脚和第12脚的PWM功能被禁用。
电路
舵机有3根线,电源,地线和信号线,电源线通常情况下是红色的线,并且应该被连接Arduino板上的到5V引脚上,地线通常是黑线或棕线,应该被连接到Arduino板的地线脚(GND),信号线通常为黄色,橙色或白色,应该被连接到Arduino板上的数字(digital)脚。注意,伺服电机需要较大的功率,如果需要驱动大于1-2个伺服电机,你可能需要将它们连接至独立的电源(不是Arduino板上的+5V电源),并确保外部电源的地线和Arduino的地线连接了起来。
函数参考
1. attach()
描述
将Servo变量附加到引脚,注意:在Arduino 0016及之前的版本上,Servo库仅支持将舵机连接至第9和第10脚上。
语法
servo.attach(pin)
servo.attach(pin, min, max)
参数说明
servo,一个类型为servo的变量
pin,连接至舵机的引脚编号
min(可选),舵机为最小角度(0度)时的脉冲宽度,单位为微秒,默认为544
max(可选),舵机为最大角度(180度时)的脉冲宽度,单位为微秒,默认为2400
示例
[codesyntax lang=”c”]
#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); }
[/codesyntax]
2. write()
描述
向舵机写入一个数值,来直接控制舵机的轴。在一个标准的舵机中,这将设定齿轮的角度,将齿轮转到对应的位置。在一个连续旋转的舵机中,这将设置一个舵机的角度(0作为全速向一边,180为全速向另一边,在90附近的值为停止)。
语法
servo.write(angle)
参数说明
servo,一个类型为servo的变量
angle,写向舵机的角度,从0到180之间
示例
[codesyntax lang=”c”]
#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); myservo.write(90); // set servo to mid-point }
[/codesyntax]
3. writeMicroseconds()
描述
向舵机写入一个微秒的值来控制舵机的轴。在一个标准舵机中,这将设置舵机齿轮的角度。在标准舵机中,参数设置为1000为完全逆时针方向,2000完全顺时针方向,1500为在中间。
注意:一些生产厂商没有按照这个标准,以至于,舵机通常响应在700到2300之间的值。自由地增加终点值直到舵机不再增加它的范围。注意,让舵机旋转超过它的终点(通常会发出异常声响)是一个高电流状态,应该被避免。
连续旋转舵机对该函数的响应类似于write()函数
语法
servo.writeMicroseconds(uS)
参数说明
servo,一个类型为servo的变量
uS,一个代表微秒值的整数参数
示例
[codesyntax lang=”c”]
#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); myservo.writeMicroseconds(1500); // set servo to mid-point }
[/codesyntax]
4. read()
描述
读取舵机当前的角度(最后一次用write()函数写入的值)
语法
servo.read()
参数说明
servo,一个类型为servo的变量
返回值
舵机的角度,从0至180度
5. attached
描述
检查一个servo变量是否被附加到一个引脚
语法
servo.attached()
参数说明
servo,一个类型为servo的变量
返回值
返回true,如果被附加到一个引脚,反之返回false
6. detach
描述
将servo变量与引脚脱离,如果所有servo变量均被脱离,第9和第10教将可以用analogWrite()函数进行PWM输出。
语法
servo.detach()
参数说明
servo,一个类型为servo的变量