Arduino机器人开发指南(四)舵机篇

首先了解一下本篇所选用舵机的一些参数

这里我们注意两点即可:
无负载操作速度:0.1秒/60度(4.8V)
扭矩:1.6kg·cm(4.8V)
角速度为 0.1s/60°,那么在满载情况下旋转一周需要0.6s。
扭矩表示力矩大小,1.6kg·cm意为在使用1cm的杠杆时可以举起1.6kg的物体。

此舵机基本满足摄像头或超声波云台的旋转速度及动力,如果要做到反应更加迅捷灵敏,则需要更换更好的舵机。(此舵机市场价格为¥10上下)
关于舵机的运行原理,不在本篇的介绍范围,大家感兴趣可以自行百度。

舵机接线如同


红线vcc,棕线gnd,橙线Signal,连接在2-13任意一个数字信号引脚上。
注意使用舵机时应提供外部电源,否则会照成arduino主板过载,电压不足等情况。

硬件连接完成后,编程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <Servo.h> //引用官方舵机库
Servo myservo;//创建一个舵机控制对象
void setup(){
 
  Serial.begin(9600);
  myservo.attach(7);//绑定对象至D7
 
}

void loop(){
 
  myservo.write(180);//写入角度
  Serial.println(myservo.read());//打印舵机角度
  delay(1000);
  myservo.write(0);
  Serial.println(myservo.read());
  delay(1000);
 
}

烧入Ardunio,打开串口监听,按下reset,舵机开始以1s为间隔来回0-180度摆动,并打印串口信息如下:

这里要注意的是,当调用write方法后,read的返回值就已经被刷新了,所以read只能返回舵机停止角度,无法返回在运行中的角度。当然可以将整个转动过程分割,这样即可用read获取中途角度,更利于微调。

硬件部分需要注意的是,9g舵机的旋转角度仅为0-180,超过这个值程序即以0或180代替。编程时,需要给与舵机一定的旋转时间即在下一次write角度前的间隔时间,此时间长短根据角速度及选择角度而定。
舵机的几个接口严禁插错,容易造成舵机损坏。严禁用手去转动舵机。本人初学时疏忽加上手痒,已报废一台。

以上为Arduino对舵机的简单操作,更多用法请自行深入。

谢谢关注。

BeiTown
2013.03.27

本文链接:Arduino机器人开发指南(四)舵机篇

转载声明:BeiTown原创,转载请注明来源:BeiTown's Coder 编码之源,谢谢


Tags: , ,

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>