Arduino 舵机
时间: 2025-05-09 09:23:16 浏览: 27
### Arduino 控制舵机教程
#### 使用 Servo 库控制舵机
为了在 Arduino 中使用舵机,需要借助 `Servo` 库。这个库提供了简单的方法来控制舵机的位置和其他功能。
以下是完整的操作流程以及示例代码:
---
#### 硬件连接说明
将舵机的三根线按照颜色标准连接到 Arduino:
- **红色线**:连接到 Arduino 的 5V 引脚。
- **棕色/黑色线**:连接到 Arduino 的 GND 引脚。
- **橙色/黄色线**:连接到 Arduino 的数字引脚(通常推荐使用 PWM 支持的引脚,如 D9 或 D10)[^1]。
---
#### 导入 Servo 库
在 Arduino IDE 中,通过以下方式导入 Servo 库:
1. 打开菜单栏中的 “工具” -> “库管理器”。
2. 搜索关键词 “Servo” 并安装官方提供的 Servo 库。
完成安装后即可在程序中引入头文件 `<Servo.h>`。
---
#### 示例代码:基本舵机控制
下面是一个基础示例代码,用于让舵机从 0° 到 180° 往返旋转一次。
```cpp
#include <Servo.h> // 引入Servo库
Servo myservo; // 创建一个Servo对象实例
int pos = 0; // 定义位置变量,默认初始值为0
void setup() {
myservo.attach(9); // 将舵机信号线连接至Arduino的D9引脚
}
void loop() {
for (pos = 0; pos <= 180; pos++) { // 舵机从0°转到180°
myservo.write(pos); // 设置舵机角度
delay(15); // 延迟时间以便观察变化
}
for (pos = 180; pos >= 0; pos--) { // 舵机从180°回到0°
myservo.write(pos);
delay(15);
}
}
```
此代码实现了舵机在一个周期内的往返运动[^2]。
---
#### 示例代码:按键控制舵机
如果希望利用两个按钮分别控制舵机向左或向右移动,则可以扩展如下代码:
```cpp
#include <Servo.h>
const int buttonPinLeft = 2; // 左侧按钮连接到D2
const int buttonPinRight = 3; // 右侧按钮连接到D3
const int servoPin = 9; // 舵机信号线连接到D9
Servo myservo;
int angle = 90; // 初始化角度为中间位置
bool isMoving = false;
void setup() {
pinMode(buttonPinLeft, INPUT_PULLUP); // 配置左侧按钮为输入模式,并启用内部上拉电阻
pinMode(buttonPinRight, INPUT_PULLUP); // 同理配置右侧按钮
myservo.attach(servoPin); // 连接舵机到指定引脚
myservo.write(angle); // 设定初始角度
}
void loop() {
if (!digitalRead(buttonPinLeft)) { // 如果按下左侧按钮
angle -= 5; // 减少当前角度
if (angle < 0) angle = 0; // 确保不超出最小范围
myservo.write(angle); // 更新舵机角度
delay(50); // 添加延迟防止抖动
}
if (!digitalRead(buttonPinRight)) { // 如果按下右侧按钮
angle += 5; // 增加当前角度
if (angle > 180) angle = 180; // 确保不超出最大范围
myservo.write(angle);
delay(50);
}
}
```
上述代码允许用户通过按压不同的按钮调整舵机的角度。
---
#### 注意事项
1. 舵机的工作电压一般为 4.8V 至 6V,请勿超过其额定工作电压以免损坏设备。
2. 当前示例仅适用于单片伺服电机;对于多轴或多自由度应用需额外考虑逻辑设计。
3. 若供电不足可能导致舵机无法正常运行或者动作不稳定,建议外接电源适配器提供充足电流支持。
---
阅读全文
相关推荐


















