首先我们要知道什么是舵机?
其实舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的闭环控制执行模块。通过给他不同的脉冲宽度就能控制它转动到对应角度,此外它还有大扭矩的特点
SG90舵机上有三根线,分别是GND(棕色线)、VCC(红色线)和SIG(黄色线),也就是地线、电源线和信号线。它是由5V供电的。
舵机的角度控制是由0.5~2ms的脉冲控制的。
舵机的角度控制是由0.5~2ms的脉冲控制的。当舵机接收到0.5ms的高电平脉冲时,舵机就回到-90°的位置。图上的脉冲对应的角度并不意味着舵机只能旋转这5个角度。只要是在0.5~2.5ms之间的脉冲都是可以的控制相应角度的。而arduino就更为方便的为我们提供了一个舵机库,使得我们简单调用库函数便能实现任意角度的旋转。
该代码是使舵机从0°旋转到180°再转到0°。
#include <Servo.h> //库头文件
int pos = 0; //定义角度储存值
Servo servo_9; //定义舵机引脚名
void setup()
{
servo_9.attach(9, 500, 2500); //定义引脚,后的500和2500可省略
}
void loop()
{
// 以 1 度的步长将舵机从 0 度扫描到 180 度
for (pos = 0; pos <= 180; pos += 1) {
// 告诉伺服转到变量“POS”中的位置
servo_9.write(pos);
delay(15); // 等待 15 毫秒,让伺服到达该位置
}
for (pos = 180; pos >= 0; pos -= 1) {
servo_9.write(pos);// 告诉伺服转到变量“POS”中的位置
delay(15); // 等待 15 毫秒,让伺服到达该位置
}
}
舵机库相关函数如下
注意:使用Servo库可能会影响Arduino开发板的某些引脚的PWM功能
当使用了Servo库,UNO开发板的9号和10号引脚的PWM功能是无法使用的;Mega开发板上的引脚11和引脚12是要受到影响的。