舵机 180° vs 270° vs 360° 区别:到底买哪一种?

Three servo motors showing 180, 270 and 360 degree rotation ranges

180° 舵机会转到你命令的角度并锁住;360°(连续旋转)舵机则完全无法保持角度——它的 write() 值控制的是速度和方向。270° 舵机只是转动范围更大的定位舵机而已。三种舵机从外观看一模一样,所以下面给你一个 30 秒的小程序,一测就知道手上是哪一种。

为什么 180°、270° 和 360° 舵机外观一模一样?

因为外壳、三线插头,甚至常常连产品名称都完全相同——不同的只是变体(variant)。”舵机 180 和 360 到底有什么区别?”是我们客服团队被问得最多的舵机问题,而且经常演变成”发错货”投诉,其实那颗舵机的表现完全符合设计。

区别完全在内部。定位舵机(180° 或 270°)能够找到并保持你命令的角度。连续旋转舵机则把这个能力去掉了——它就像一个装了舵机插头的齿轮马达。光看外观分不出来,要靠测试来分辨。

180°、270° 和 360° 舵机的真正区别是什么?

一切都取决于 write() 在舵机内部做了什么。一张表讲清全部。

行为 180° 舵机 270° 舵机 360° 连续旋转舵机
类型 定位型 定位型,范围更大 非定位型(连续旋转)
write(angle) 做什么 转到该角度(0–180)并锁住 转到映射在更大 270° 行程上的位置并锁住 设定速度和方向:≈90 = 停止,越靠近 0 = 朝一个方向全速转,越靠近 180 = 朝另一个方向全速转
能保持指定角度吗? 不能——它会一直转下去
典型项目 RC 转向、机械臂关节、摄像头云台 和 180° 同样的用途,但需要更大转动范围时 轮子、绞盘、拉线
可以把它想成 一个可以指向的旋钮 行程更大的旋钮 装了舵机插头的齿轮马达

所以 360° 舵机并不是 180° 的”升级版”——它是另一种工具。如果你的项目需要舵臂停在某个特定角度,连续旋转舵机永远做不到。

怎么测试手上到底是哪一种舵机?

上传下面这个程序,给舵机供电,然后观察它的反应。程序命令舵机转到 90° 中间位置——这正是两大类舵机表现完全不同的那个值。

// 舵机识别测试 - Arduino Uno/Nano
// 定位型(180/270):转到中间位置并牢牢锁住。
// 连续旋转型(360):停住不动,或缓慢漂移。
#include <Servo.h>

Servo testServo;

void setup() {
  testServo.attach(9);   // 橙色/黄色信号线接 pin 9
  testServo.write(90);   // 命令舵机转到 90 度中间位置
}

void loop() {
  // 这里什么都不用做 - 观察舵机就行:
  // 摆到中间并锁住            = 定位型(180 或 270)
  // 静止不动,或非常缓慢地漂移 = 连续旋转型(360)
}

如果连续旋转舵机在 90 时不是完全停死而是轻微漂移,轻轻转动舵机机身上的小微调电位器(如果有的话),直到它静止为止。这是校准,不是故障。

定位舵机锁定在命令角度,旁边的连续旋转舵机在自由旋转
write(90) 测试:定位型会锁在中间位置(左);连续旋转型只会转个不停或直接停下(右)。

你到底需要哪一种舵机?

需要定位,就选 180° 或 270°

RC 转向、机械臂关节和摄像头云台支架都需要舵机转到某个角度并停在那里——这是定位舵机的领域,轻负载机构选 SG90 180° 微型舵机 就够了。只有当 180° 的行程不够用时,才需要考虑 270°。

我们的雨滴传感器自动晾衣架教程就是一个很好的实战例子,展示舵机控制在真实马来西亚项目里怎么用。

需要旋转,就选 360° 连续旋转

机器人轮子、绞盘,以及任何要拉线的机构,需要的是连续旋转——那就选 SG90 360° 连续旋转舵机。记住控制逻辑是反过来的:你命令的是速度,不是角度。

// 连续旋转(360)舵机演示 - write() = 速度 + 方向
#include <Servo.h>

Servo wheel;

void setup() {
  wheel.attach(9);
}

void loop() {
  wheel.write(0);     // 朝一个方向全速转
  delay(2000);
  wheel.write(90);    // 大约 90 = 停止
  delay(1000);
  wheel.write(180);   // 朝另一个方向全速转
  delay(2000);
  wheel.write(90);    // 再次停止
  delay(1000);
}

SG90 还是 MG996R?按负载选,别按外观选

SG90 是 9g 微型舵机,塑料齿轮,为轻负载而生——传感器支架、小型连杆、学校 RBT 项目都合适。MG996R 用的是金属齿轮,扭矩大得多,重一点的机械臂就该用它。如果机构拿在手里已经觉得沉,最先”抗议”的一定是 SG90 的塑料齿轮。

舵机怎么接线和供电才正确?

三种舵机共用同一种三线插头,所以接线永远不变——变的只有代码。

线的颜色 接到 备注
棕色 / 黑色 GND 必须和 Arduino 的 GND 共地
红色 5V 电源 带负载时要用像样的 5V 电源,别用 Arduino 的 5V pin
橙色 / 黄色 信号 任何数字 pin——Servo.h 不需要硬件 PWM。pin 9 只是经典选择
舵机接线:棕色线接地,红色线接 5V 电源,橙色信号线接 Arduino 引脚
每颗舵机都是同样的三根线:棕色接 GND(共地),红色接 5V,橙色接信号 pin。

电源这一环比新手想象的重要得多。带负载时,从 Arduino 的 5V pin 取电的舵机会抖动,板子还会随机重启——请用独立的 5V 电源给它供电,只把地线接在一起。一个调好的可调降压模块就能胜任;参考我们的把 LM2596 降压模块调到 5V 教程。

真实客户最常踩的坑

“Mcm mana nak beza servo motor 180° dan 360° eh, sbb nama dua-dua sama ja yang saya terima”——这位客户用马来语问:收到的两颗舵机名字一模一样,怎么分辨 180° 和 360°?观察得完全正确:印在机身上的名字往往完全相同,外壳也看不出任何线索。解决办法就是上面的 90° 测试程序。定位型锁在中间;连续旋转型停住或缓慢漂移。三十秒见分晓。

“If I need to use a servo for RC, which one?”——这是另一位客户的英文提问:RC 该用哪种舵机?RC 转向需要定位控制,所以选 180°(想要更大行程就选 270°)。连续旋转舵机装在转向连杆上只会转过中心停不下来——把 360° 留给驱动轮和绞盘。

有位客户很肯定我们发错了货:他的”180° 舵机”一直转个不停,从不停在任何角度。其实那是一颗连续旋转变体,行为完全符合设计——只是下单时选的是另一个变体。开纠纷之前,先核对订单上选的变体,再跑一遍测试程序;舵机通常是无辜的。

常见问题

没有标签,怎么分辨 180° 和 360° 舵机?

跑一个命令 write(90) 的程序。定位舵机会摆到中间并牢牢锁住;连续旋转舵机会停住不动或缓慢漂移。一个测试就能定论。

360° 连续旋转舵机能保持位置吗?

不能。它的 write() 值只设定速度和方向,物理上就停不到指定角度。如果项目需要保持角度,请用 180° 或 270° 定位舵机。

RC 转向应该用哪种舵机?

定位型——大多数项目用 180°,机构需要更大行程就用 270°。连续旋转舵机是给轮子和绞盘用的,不适合转向。

为什么我的舵机会抖动、Arduino 一直重启?

几乎都是电源问题。带负载的舵机从 Arduino 的 5V pin 取电,就会出现这些症状。请用独立的 5V 外部电源供电,并把地线连在一起。

270° 舵机的代码和 180° 写法不一样吗?

同一个 Servo.h 库,同样的 write() 调用。区别在于命令范围被映射到更大的 270° 行程上,所以 write() 每走一步,对应的物理转动更多。

最后更新:2026年7月。有问题?WhatsApp 联系我们

Leave a Reply

Your email address will not be published. Required fields are marked *