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 时不是完全停死而是轻微漂移,轻轻转动舵机机身上的小微调电位器(如果有的话),直到它静止为止。这是校准,不是故障。

你到底需要哪一种舵机?
需要定位,就选 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 只是经典选择 |

电源这一环比新手想象的重要得多。带负载时,从 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 联系我们。



SG90 MG90 Tower Pro Micro Servo Motor 9g 180 360 Servo Motor for Arduino Robotic - SG90- 180°
SG90 MG90 Tower Pro Micro Servo Motor 9g 180 360 Servo Motor for Arduino Robotic - SG90- 360°
SG90 MG90 Tower Pro Micro Servo Motor 9g 180 360 Servo Motor for Arduino Robotic - MG996R- 180°