舵机是一种位置「角度」伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具、航模、机器人中已经得到普遍使用。舵机是一种俗称,其实是一种伺服马达。本篇通过官方驱动库来实现舵机控制。
内部结构
PWM控制
控制线
由于Arduino的驱动能力有限,当需要控制多个舵机时,需要外接电源以及使用专用的舵机控制板。
舵机控制板
线路连接非常简单,舵机红色线接开发板5V,棕色线接开发板GND,橙色信号线接开发板数字引脚9。
实验原理图如下图所示:
实验原理图
实物连接图如下图所示:
实物连接图
#include <Servo.h>
Servo myservo; // 定义Servo对象来控制
int pos = 0; // 角度存储变量
void setup() {
myservo.attach(9); // 控制线连接数字9
}
void loop() {
for (pos = 0; pos <= 180; pos ++) { // 0°到180°
// in steps of 1 degree
myservo.write(pos); // 舵机角度写入
delay(5); // 等待转动到指定角度
}
for (pos = 180; pos >= 0; pos --) { // 从180°到0°
myservo.write(pos); // 舵机角度写入
delay(5); // 等待转动到指定角度
}
}
3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。
舵机在0°和180°间不断转动。
用Arduino控制舵机一般有两种方法:
Servo库常用函数:
日志:
2022.12.16修图
2020,11,12创建