Arduino 控制舵机
的有关信息介绍如下:舵机是一种电机,它是使用一个反馈系统来控制电机的位置。舵机通常情况下只能旋转180°。如果你玩儿过无线电操纵的飞机,就会接触到舵机,它们用来控制飞机的飞行轨迹。遥控汽车是使用舵机控制转向机构。模型船使用舵机控制船舵。舵机还常用于控制机器人的关节转动。这里我们将仅使用 Arduino UNO 控制器来控制一个舵机,不添加任何其他外设。
准备实验需要用到的硬件,如图所示:
如下图所示进行硬件的连接,此步我们先不连接任何其他元件,只需将Arduino UNO控制器连接到电脑
如下图所示,我们先不使用电位计控制,只是使用程序来控制一个舵机,将下列程序复制到Arduino IDE中或者可以直接在最后一步中提供的百度网盘地址中直接下载代码和 Fritzing 电路图
#include
Servo myservo;
int pos = 0;
void setup()
{
myservo.attach(9);
}
void loop()
{
for(pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(15);
}
for(pos = 180; pos>=0; pos-=1)
{
myservo.write(pos);
delay(15);
}
}
如图所示,选择正确的板卡型号和端口,将程序上传到控制器中。
如图所示,程序上传无误的情况下 Arduino IDE 软件会显示如下结果,在上传过程中,Arduino 控制器板载的 TX RX 灯会频闪
如下图所示,使用舵盘连接螺丝,连接舵盘和舵机
按照下图中的电路,进行实验硬件的连接
注意:舵机线一种是:红、黑、黄(红色连接 Vcc、黑色连接 GND、黄色连接信号 S)
还有较为常见的一种是:棕、红、橙(棕色连接 GND、红色连接 Vcc、橙色连接信号 S)
实验效果如图所示,舵机会自动从 -90 度转动到 90 度,再从 90 度转动到 -90 度。注意当 Arduino UNO 控制器连接到电脑供电时,舵机会自动归回中间位置
代码回顾:
(1)#include
(2)Servo myservo; 建立一个舵机对象,名称为 myservo
(3)myservo.attach(9); 将引脚 9 上的舵机与舵机对象连接起来
attach 函数连接一个舵机对象到指定的引脚上,attch 函数可以有 1 或 3 个参数。如果使用 3 个函数,第一个参数表示引脚,第二个参数表示最小角度(0度)的脉冲宽度,单位是微秒(默认是 544),第三个参数表示最大角度(180度)的脉冲宽度,单位是微秒(默认是2400)。通常情况下,只需要设置舵机引脚,忽略第二和第三个参数。
(4)myservo.write(pos); 写角度到舵机
代码位置如下图所示:
硬件回顾:
舵机:包括一个直流点击,一套装在电机和输出轴之间的齿轮系统,一个位置传感结构和一个控制电路。位置传感机构检测舵机的位置并提供给控制系统,控制系统使用电机控制舵机臂运动到指定位置。有很多不同尺寸、速度、精度的舵机,功率越大、精度越高的舵机相对价位也比较高。使用汽车、机器人、飞机时,舵机是很常用的一种方式。通过PWM信号实现舵机位置的控制,一般来说脉宽在 500 微秒到 2500 微秒之间,舵机从 -90 到 90 度。下图所示为舵机的内部结构图
下图分别为(1)舵机控制原理(2)舵机扭矩计算方法(3)输入脉冲宽度与舵机角度对应关系图,供大家参考
为了方便大家实验,防止在复制代码的时候出现错误,特将代码和电路图
Fritzing源文件上传至网盘供大家下载学习。下载地址:
http://pan.baidu.com/s/1kVq6v7D,打开链接后,如图所示,点击下载即可