司服器舵机 Arduino

作者:HDKJ-东莞市华舵模型科技有限公司 发布时间:2026-08-12 17:57:07


我第一次玩舵机,是照着 Arduino IDE 里自带的 Sweep 

例程抄了一遍。第一次通电还挺激动,结果那玩意从 0 度到 180 

度来回甩,快得跟打了鸡血似的,我盯着看了五分钟,才想起来问自

己:转这么快,到底有什么用?后来我才知道,这是每个舵机新手的

必经之路,先让舵机动起来,再研究怎么让它动得好看。我那会儿连

舵机三根线哪根是信号都分不清,就敢直接往板上怼,居然没烧东西

,现在想想真是命大。 后来才知道,Servo 库背后就是 50Hz 

的 PWM,靠脉冲宽度控制角度,1ms 左右的脉宽对应 0 

度,2ms 对应 180 度,中间线性。write(90) 

这种写法是库帮你换算好的,省心,但你要是想微调,就得用 writeMicroseconds(1500),

这个才是真正一手的信息,调起来直观得多。我调试一个爪子,write(45) 

怎么都不对,抓东西总是差一点,后来发现是舵机中位本身偏了,用

 writeMicroseconds 手动校到 1480,才

老实下来。顺带说一句,不同品牌的舵机,脉宽和角度的对应关系还

真不是完全一样,有的 500us 到 2500us,有的窄一

点,换舵机就得重新校,别指望一套参数通吃。我还拿示波器看过波

形,发现不少国产舵机实际是 20ms 周期、1.5ms 脉宽

对应 90 度,跟资料里写的略有出入,所以手上备个万用表或者

示波器,调试能省很多冤枉路。 说到这我必须吐槽 Servo 

库占定时器的事。Uno 上只要用了 Servo 库,9 号和

 10 号脚的 PWM 就废了,因为库把 Timer1 抢走

了。我第一次做两路舵机加一路电机调速,调了半天电机不转,查了

一晚上资料才明白是这回事。你要是踩到同样的坑,要么换引脚,要

么干脆上 PCA9685,别跟定时器较劲,真的较不过。后来我

干脆养成习惯,凡是舵机超过两个的项目,直接上扩展板,省得整天

跟引脚打架。换成 Mega 会宽松一些,但它那几个定时器也不

是无限用的,复杂项目开工前先查一遍引脚分配表,能省一个晚上的

排查时间。 新手还特别容易踩一个坑:想让机械臂动得优雅,就别

直接 write 到目标角度。一步到位的结果就是咣当一下甩过

去,跟机器人抽风似的。我现在都是写个小循环,每 10 毫秒加

两三度,做点简单的梯形加减速,动作立刻就有"人味"了。发朋友

圈都有人问这动作怎么做的,其实就几行代码的事。再进阶一点,可

以试试 s 形曲线插值,那效果更丝滑,不过算法写起来麻烦点,

我至今也只敢在简单的二自由度云台上用。核心思路就是别让舵机一

步到位,中间多插几帧中间角度,质感完全不一样,我那云台现在连

 120 度往复扫描都带缓动,看的人都夸像那么回事。 还有一

个玄学问题是 jitter。舵机在目标位置附近高频抖动,十有

八九不是代码问题,是供电不足,或者信号线太长被干扰。我试过用

一米多的杜邦线接舵机,抖成筛子,换成 10cm 的短粗线立马

安静,这条经验至少值一顿烧烤钱。另外 5V 电源纹波大的时候

也会抖,我加了一个 470uF 的电解电容在舵机电源两端,抖

动基本就消失了,十几块钱的示波器看不出来,但手感骗不了人。后

来我还发现,舵机线和电机线绑在一起走也是个大干扰源,分开走线

、尽量垂直交叉,抖动又少了一截,布线这事看着不起眼,实际影响

大得很。 电位器控制舵机的经典接法,我建议每个人都亲手焊一遍

:电位器中间脚接 A0,另外两脚接 5V 和地,程序里把 0 

到 1023 映射成 0 到 180,转旋钮舵机跟着走。这练

习虽然简单,但能让你真正理解"反馈"这俩字是怎么回事,比看十

篇教程都管用。反正我焊废了两块洞洞板,现在闭着眼都能接对。做

完这个,下一步就可以挑战超声波测距加舵机扫描的避障小车了,那

才算正式入了机器人坑。手头要是没有电位器,用手机蓝牙遥控也是

一样的道理,本质都是把外部输入映射成角度,想通了这一层,后面

接什么传感器都不怵。

联系我们

地址:广东省东莞市木棆创新路(东部科技企业创新服务中心)1栋4楼1403

手机号码:+13686293562

邮箱:1558154330@qq.com

cache
Processed in 0.009193 Second.