Arduino 简单实例之十 _ 舵机

#Arduino

说明

舵机的旋转不像普通电机那样只是转圈圈,它可以根据你的指令旋转到 0 至 180 度之间的任意角度然后精准的停下来,常用于控制机器人。

舵机的转动的角度是通过调节 PWM(脉冲宽度调制)信号的占空比来实现的。需要使用 Arduino 上的 PWM 口控制(数字前带~的),Arduino 的驱动能力有限,所以当需要控制 1 个以上的舵机时需要外接电源。一个机器人经常需要很多个舵机同时工作,此时需要加一个舵机控制板,舵机控制板本身是一个单片机,它不但能接 16/24/32 个舵机,同时也简化了舵机操作命令。

下例中使用的是 9g 的小舵机,用 arduino 板上的 5V 供电,大的舵机有的需要外部供电才能驱动,外接电源时需要将降到舵机指定的电压,否则会烧坏舵机。

硬件

舵机 SG90,Arduino uno,杜邦线

接线

GND(棕色) 接 Arduino GND
PWM(橙色) 接 Arduino Digital 10
VCC(红色) 接 Arduino 5V

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <Servo.h>

#define PIN_SERVO 10
Servo myservo;

void setup()
{
myservo.attach(PIN_SERVO);
}

void loop()
{
myservo.write(0);
delay(1000);
myservo.write(80);
delay(1000);
myservo.write(160);
delay(1000);
myservo.write(80);
delay(1000);
myservo.write(0);
delay(1000);
}

代码中用到了 Servo 库,它是 Arduino 自带的库,不需要另外下载安装。

请注意:因各厂商硬件不同,引脚位置可能有差异, 具体请见硬件说明书)