想给小车加个转向、给云台加个抬头低头、或者做个摇头扇、机械臂,绕不开的就是舵机。SG90是最常见的一颗微型舵机,便宜、小巧,能转0到180度,接Arduino一个引脚就能控制。这篇文章把接线和控制讲清楚。

三根线先分清:信号、电源、地
SG90引出三根线,颜色和功能要记牢:橙黄色是信号线(控制它的角度),红色是电源正(接供电正极),棕色或黑色是地线。接线顺序别看错——方向反了轻则不转,重则可能烧舵机。
信号线接Arduino一个PWM数字脚(带波浪号~的),比如9号脚,因为舵机是靠PWM脉冲宽度来控制角度的:脉宽约1ms对应0度、1.5ms对应90度(中位)、2ms对应180度。Servo库帮我们把这些脉冲细节封装好了。

供电是关键:别让主板硬扛
很多人踩的头号坑是供电。SG90堵转时瞬间电流能到几百毫安甚至更高,长时间或带负载时,从Arduino的5V脚直接供,容易把板载线性稳压器拖到发热、甚至把板子搞重启。稳妥做法是:一个SG90轻载可以从Arduino的5V取电;但做多舵机、或带较重负载时,一定要外接一个5V供电(比如4节AA电池或5V电源),让它的地和Arduino地共地即可。
如果发现舵机接上就抖、一启动板子就重启,先怀疑供电——这就是典型的“靠主板供不起”的症状。加个大点的滤波电容(数百uF)在舵机电源两端,也能缓解瞬时拉低电压的抖动。
用Servo库控制角度:几行代码
Arduino控制舵机的入门写法很固定:引入Servo库,创建一个Servo对象,初始化时attach到9号脚,然后调用write(角度)就能让舵机转到指定角度,比如write(0)、write(90)、write(180)来回扫动。库内部自动把角度换算成对应的PWM脉宽。
拿到“能转指定角度”这个能力,就能叠功能:接个电位器读角度实时控制舵机(做一个手动云台);配合时延让舵机左右摇头做成摇头扇/监控云台;多颗SG90就能拼简单机械臂的关节。
抖动、角度边界和三个坑
舵机“卡卡”抖动,多半是供电不足或PWM频率/时序不稳;静止时嗡嗡响但不动,可能是负载过大或供电临界。先上外部电源,很多抖动问题就没了。
还有两个坑:一是别超过机械行程——标准SG90是0到180度,写超过范围或往死里顶,会顶到限位齿轮,长期可能扫齿损坏,控制时留点余量更稳;二是信号线接的是PWM脚,接成普通数字脚或不支持PWM的脚,有些板子能通过软PWM勉强工作但不稳,最好用真正的PWM脚。
SG90是把“直线电信号”变成“角度动作”最便宜直接的方式。三根线、一个PWM脚、一个Servo库,从转向到云台到机械臂,它都是最常被用到的“手”。


Servo库几行就能控制0到180度,上手很快
堵转电流不小,多舵机还是外接5V稳
供电那个坑真的是头号,从主板直供一抖就重启
橙红棕三根线方向接反轻则不转,看丝印最重要