动手学arduino(9)控制舵机

舵机(servo)又称伺服电机,是小型机器人身上最常用的动作元件,如果连舵机知识都不懂你又怎么混迹创客界呢?

动手学arduino(9)控制舵机

一般舵机的旋转是0至180度(也有360度的),它可以转到范围内的任意角度。
舵机比较多的用于对角度有要求的场合,比如摄像头,智能小车前置探测器,需要在某个范围内进行监测的移动平台。又或者把舵机放到玩具,让玩具动起来。还可以用多个舵机,做个小型机器人,舵机就可以作为机器人的关节部分。

动手学arduino(9)控制舵机

 

控制舵机使用控制信号,这是一种脉宽调制(PWM)信号,凡是微控制器能轻松的产生这种信号。
脉冲的高电平持续1到2毫秒(ms),也就是1000到2000微秒(µs)。在1000µs时,舵机左满舵。在2000µs时,右满舵。通过调整脉宽来实现更大或者更小范围内的运动。

动手学arduino(9)控制舵机

以上是理论知识,下面来实践操作:用arduino控制舵机左右转180度。
这个项目的连线很简单,只需按图所示连接舵机三根线就可以了,连的时候注意线序,舵机引出三根线。一根是红色,连到Arduino开发板5V上。一根棕色(有些是黑的),连到GND。还有一根是黄色或者橘色,连到数字引脚9(9脚上有 ~标志,说明能输出PWM信号)。
动手学arduino(9)控制舵机
编写代码:
动手学arduino(9)控制舵机
代码中的pos是舵机要转到的角度,它是一个从0~180之间逐步变化的量。
上面的代码意义是:
舵机从1度开始向180度方向转动,每转动1度,等待15毫秒;随后从180度转到1度,也是每转动1度,等待15毫秒。