想做机械臂、摇头摄像机云台或者机器人头部,第一个用上的基本就是舵机。SG90这颗几块钱的微型舵机,是绝大多数人入坑舵机控制的第一课。这篇把它的三根线、怎么上电、怎么精确转到指定角度一次讲明白。

三根线别接反
SG90有三根线。橙色的是信号线,接Arduino带PWM的引脚,比如D9;红色的是电源正极接5V;棕色的是负极接地。接反了轻则不转,重则烧驱动,接线前先对着丝印确认。

single一颗舵机、空载扫一扫,Arduino的5V口带的动。但如果你的舵机带负载、或者一次要带好几个,就要外接5V电源给舵机供电,Arduino只接信号地共地就行,别硬从板子抽电流。
Servo库直接控角度
Arduino自带Servo库,用起来非常简单。先创建一个Servo对象,在setup里用servo.attach(9)把它挂到引脚上,然后在loop里直接servo.write(0)、write(90)、write(180),它就会转到对应角度。
这个库靠的是给舵机发不同脉宽的PWM信号:0度对应大概1毫秒脉宽,90度约1.5毫秒,180度约2毫秒。库帮你把这些都包好了,不用自己算。
扫舵测一测
最简单的验证程序就是让舵机从0度慢慢转到180度再转回来,用delay控制移动速度,串口打印当前角度。跑通之后你会看到舵机来回摆臂,这就说明信号发送正常。
如果舵机只抖不动,多半是供电跟不上或者信号线没接对PWM脚。如果一动不动先测测电源电压,低于4.8V舵机往往带不动。
进阶:加旋钮控制
想在单个角度手动定位,可以再接一颗电位器到A0,把模拟值映射到0到180度再去write,你就得到一个"手拧旋钮、舵机跟转"的控制器。这套是机械臂关节控制的雏形。
要注意舵机转角范围一般是0到180度,超过极限硬顶会咔咔响甚至烧齿轮。加限位、留余量,是做久了才会注意的细节。
小结
SG90便宜、够轻、响应够快,适合一切"只需要摆个角度"的场景。把三线接线、Servo库、供电和脉冲原理这四点吃透,舵机这块就算入门了。想提升就换金属齿轮的MG996R,接线和代码完全一样。







给摄像头做个摇头云台去,收藏
扫舵那段跑通超有成就感,慢慢也会调角度了
多带几颗真的要从板外取电,这条提醒太实在了
第一颗舵机就是SG90,三线接反烧了我一颗,血的教训
机械臂入门就得从它开始