凌顺实验室/指南/Arduino 指南/

使用 Arduino Uno 驱动舵机

实例效果

使用Arduino Uno 驱动一个9克舵机,
实现,
从0度转到90度,
然后,从90度又转回0度,
如此不断往复......

元件说明


技术参数

产品尺寸:323012mm
工作扭矩:1.6kg·cm(4.8V)
使用温度:-30至+60摄氏度
死区设定:5微秒
工作电压:3.5V-6V
插头类型:JR、FUTABA通用
转动角度:180度
结构材质:塑料齿
适用范围:固定翼、直升机kt、滑翔、小型机器人机械手等模型

引脚说明

引脚 / PIN / IO 颜色
地线(GND) 棕色或黑色
电源线(VCC) 红色
信号线(PWM) 橙色或白色

Bom表

名称 数量
Arduino Uno x1
9克舵机 x1
跳线(杜邦线) 若干

接线方式

注意 舵机接收的是PWM(Pulse Width Modulation)信号,也就是脉宽调制。而在Arduino Uno开发版上,并不是所有引脚都具备PWM功能,只有引脚旁边带有「」符号才有,例如引脚3、5、6、9、10、11。然而不同的开发板的PWM引脚定义也是不一样的,具体请查阅对应开发板的资料。

程序代码

图形化编程块

本次图形化编程使用的是Tinkercad 平台

文本编程代码

// 加载 舵机 库
#include <Servo.h> 

// 创建一个名为 servo_9 的 舵机实例 (名称可随你喜欢命名)
Servo servo_9;

// 初始化程序,在最开始时运行,只运行一次
void setup()
{
  // 使用实例方法 .attach(pin, min, max) 进行配置
  // pin: 舵机所连接的引脚号
  // min: (可选)脉冲宽度(以微秒为单位),对应于舵机上的最小(0度)角度(默认为544) 
  // max: (可选)脉冲宽度(以微秒为单位),对应于伺服器上的最大(180度)角度(默认为2400)
  //           (pin, min, max)
  servo_9.attach(9, 500, 2500);
}

// 主体程序,不断循环
void loop()
{
  while (1 == 1) {
    servo_9.write(0); // 实例 servo_9 的 舵机 转到0度
    delay(1000); // 等待 1000 毫秒
    servo_9.write(90); // 实例 servo_9 的 舵机 转到90度
    delay(1000); // 等待 1000 毫秒
  }
}