首页 > 行业资讯 >无刷电机
TECHNICAL SUPPORT

Arduino舵机控制:接线、代码与常见问题

发布时间: 2026-04-21

本文给出了整整的舵机控制办法,涵盖标准接线图伟创动力舵机,有可直接上传的控制代码,有核心参数设置,还有高频问题排查步骤。不管你用的是SG90,还是MG995,亦或是别的标准舵机,依照本文操作都能够在5分钟以内达成基础控制。

01核心:舵机抖动或不转怎么办?

倘若你在连接舵机之后察觉到舵机产生剧烈抖动的状况,或者出现不转动这一情形,又或者仅仅朝着一个方向进行旋转,那么其根本原因大抵是电源供电不足,亦或是信号线接触不良。直接去执行下面这三项检查:

1. 电源方面存在这样的问题,舵机,特别是像MG995这类大扭矩型号的舵机,在启动的那一瞬间电流能够达到1至2A,然而板的5V输出,其最大仅仅只能提供大概400mA,所以要使用独立的外部5V电源,比如4节AA电池或者5V适配器,并且要把电源的负极与的GND进行共地连接。

2. 信号线之间的连接情况是这样的,对于舵机信号线而言,其颜色一般是橙色或者黄色,这种舵机信号线一定要连接到上面,而连接的位置是支持PWM输出的数字引脚,具体像D3、D5、D6、D9、D10、D11这些引脚。

3. 代码方面的角度数值,去查看程序里.write(angle)的这个角度数值,是不是处于舵机所允许的范围之内,标准舵机的范围是0到180°

02舵机控制基本原理(1分钟理解)

舵机借助接收50Hz的PWM信号,此信号周期为20ms,进而实现对旋转角度的控制,脉冲宽度对角度起着决定作用

:脉冲宽度0.5ms(高电平时间)

90°:脉冲宽度1.5ms

180°:脉冲宽度2.5ms

的Servo.h库,已经自动对PWM信号生成予以处理,你仅仅只需调用write(angle)函数就行。

03标准接线图(3步完成)

以最为常见的SG90或者MG995舵机来说比如说当做例子,三根线的那种标准连接方式是这样的:

舵机线颜色 功能 连接至
棕色/黑色 地线(GND) GND
红色 电源正极(VCC) 外部5V电源正极
橙色/黄色 信号线(PWM) 数字引脚D9

关键要点在于,外部电源的负极伟创动力,一定要,和的GND相连,不然的话,信号就没办法,形成回路。

arduino 舵机控制_控制舵机转动程序_控制舵机代码

04可直接使用的完整代码

# 
Servo ;  // 创建舵机对象
int pos = 0;    // 存储角度位置
void setup() {
  .(9);  // 将信号线连接到D9引脚
  // 如果舵机在后立即抖动,可添加以下延时
  delay(500);
}
void loop() {
  // 从0°旋转到180°,每次增加1°
  for (pos = 0; pos <= 180; pos += 1) {
    .write(pos);  // 设置角度
    delay(15);           // 等待舵机到达位置
  }
  // 从180°旋转回0°,每次减少1°
  for (pos = 180; pos >= 0; pos = 1) {
    .write(pos);
    delay(15);
  }
}

代码说明

(pin):指定PWM信号引脚

write(angle):设置目标角度(0180°)

delay(ms):赋予舵机抵达位置的时间,一般而言10到20ms就已充分。

05核心参数对照表

舵机型号 工作电压 堵转电流 推荐供电方式 最大角度
SG90(微型) 4.86V 约250mA 5V引脚(单个) 0180°
MG995(标准) 4.87.2V 约1.2A 独立5V 2A以上电源 0180°
(大扭矩) 4.87.2V 约1.5A 独立5V 2A以上电源 0180°
连续旋转舵机 56V 取决于型号 独立电源 无角度限制

针对机械臂、机器人等此类有着精确定位需求的项目,给出的选型建议是,采用标准的0至180°舵机;而对于车轮驱动的情况,所给出的选型建议则是,运用连续旋转舵机。

06高频问题完整排查

6.1 舵机完全不转

检查供电:测量舵机红色线与棕色线之间电压是否为4.86V

仔细查看代码,要去核实,在.(pin)这个函数里面的引脚编号,和实际物品连接的情况,是不是一样的。

对舵机展开检查,把舵机的信号线连接到5V,要是舵机朝着一端转动,将其信号线连接到GND,舵机就会转到另一端,如此就能判定舵机的硬件是不是处于正常状态。

6.2 舵机抖动剧烈

关于共地问题,要去确认,外部电源的负极,和的GND,是不是已经连接了,90%的抖动,是由这个引起的。

供给电力不足,大扭矩舵机启动之际,瞬间电压降落进而致使产生抖动,需更换具备更大电流的电源。

信号干扰:使用较短的杜邦线(建议不超过50cm)

6.3 角度不准或无法转到指定角度

脉冲范围校准:存在部分舵机,其0°与180°所对应的脉冲宽度出现偏差,需借助.(us)来进行微调。标准范围是:600us对应0°,对应180°。

机械限位:检查舵机臂是否被外部结构卡住

6.4 舵机只朝一个方向旋转

进行核实,所运用的是标准位置舵机,并非连续旋转舵机。连续旋转舵机借助角度值来对转速以及方向加以控制 ,举例来说 ,write(0)这一操作等于全速反转 ,write(90)这一操作等于停止 ,write(180)这一操作等于全速正转。

07多舵机同时控制方法

Uno或者Nano,最多能够控制12个舵机。且,能够控制48个。代码示例:

# 
Servo ;
Servo ;
void setup() {
  .(9);
  .(10);
}
void loop() {
  .write(0);
  .write(180);
  delay(1000);
  .write(180);
  .write(0);
  delay(1000);
}

要留意,当多个舵机同时开展动作之际,总电流是会进行叠加的,因而要采用具备足够功率的外部电源。

08行动建议:下一步操作步骤

1. 进行基础功能验证:将本文代码予以复制,依照接线图把单个SG90舵机连接起来,运用的5V引脚展开测试(此仅限于小舵机)。

2. 将其拓展到项目的应用范畴,在成功有效地控制住单个舵机之后,接着增添独立的电源用以驱动具备大扭矩的舵机,最终再去增加多舵机协同配合的控制操作。

3. 留存标准模板:把上述代码留存成基础模板,一旦每次新建项目之际就直接去复制运用。

回顾核心结论:对舵机进行控制时存在三个关键要素,其一为正确的PWM引脚,其二是充足的独立供电,其三是可靠的共地连接。只要这三点不存在错误之处,那么任何标准舵机都能够实现稳定控制。

为所有产品提供动力单元

联系伟创动力产品专家,为你的产品推荐合适的驱动系统所需部件。

发送邮件
在线留言
WhatsApp
+86 0769 8399 3238
 
kpowerMap