发布时间: 2026-09-22
本文对通过 Uno控制舵机的相关内容进行拆解, 其核心的观点用一句话来概括就是, 利用PWM脉宽调制信号, 把不同宽度的脉冲翻译成不同角度的位置, 此外, 本文还会对这一“翻译”过程的完整链路进行详细剖析, 同时给出常见故障的排查路径。
舵机里面的那个控制小电路板, 是在一直监控一个脉冲信号的。这个脉冲信号的周期是20毫秒。在这个20毫秒里面, 高电平会持续一些时间。这个高电平持续的时间有多久? 这就叫作脉宽。脉宽的具体长短是多少的话, 就会决定那个舵片最终停在什么位置上面去。
常见对应关系(以标准180°舵机为例):
| 脉宽 | 对应角度 |
|---|---|
| 0.5 ms | 0° |
| 1.0 ms | 45° |
| 1.5 ms | 90° |
| 2.0 ms | 135° |
| 2.5 ms | 180° |
换算的公式是这样的, 先把脉宽数值减去零点五这一小步完成, 再紧接着把得到的结果除以二点零, 之后要把算出来的商乘以一百八十度。
这一条脉宽到角度这样的线性映射关系, 它是整条控制链里面最核心的一部分, Uno这个设备所需要完成的任务, 就是把脉宽能够发生变化的那个脉冲信号非常精确地生成出来。
在实质的接线进程之中, 存在一种属于高频状态的状况, 那就是将舵机的信号导线接入到普通的数字引脚接口位置, 例如Pin 3这个位置, 并且使用 函数来输出代表高的电平电压状态。由此带来的最终结果是, 舵片表现出非常剧烈的抖动现象, 同时角度也无法完全地停止住。
![]()
导致这种情况的原因非常的直接, 因为数字输出接口只能提供高电平或者是低电平这两个状态, 它没有办法去生成一个宽度可以改变的脉冲信号, 于是舵机内部的控制器就无法接收到有效的脉宽数据, 它就会认为这是随机的噪声干扰, 所以舵片自然会乱抖。
采取正确的操作方法就是把信号线连接到支持硬件PWM的引脚上面, 在Uno型号单片机上面是9或者10号接口, 然后输出周期为50赫兹并且脉宽可以进行调节的方波信号。
路径一:调用舵机库
使用()方法来绑定引脚, 然后用()方法传入介于零到一百八十度之间的度数。这个库的内部会自动去完成将度数转换成脉宽的这个工作, 并且会通过来输出脉冲信号。这种方法是用起来最快的方式, 它适合大多数的应用场景。
路径二:手动配置
把计时器一设定为相位校正的脉冲宽度调制模式, 并把预分频系数设为一千零二十四, 然后把周期寄存器OCR1A的值设定为两万, 这样一来在一兆赫兹的频率下, 就对应着二十毫秒的时间长度。
比较值就直接填入脉宽的计数数值, 比如说九十度对应的就是一万五千, 这是怎么算出来的呢伟创动力舵机伟创动力,是用一点五毫秒除以二十毫秒, 再乘以两万得到的。这样的方式灵活度更高一点, 可以实现那些非标准的角度, 或者是自定义的周期。
无论是走哪一条路子, 核心的道理其实都是完全一样的, 是要去生成一个宽度特别特定的脉冲信号, 接着这个信号会进入到舵机的内部让里面的解码部分去做处理, 就是通过齿轮组成的传动系统去带动舵片旋转, 最终使得舵片能够停在那个目标所要求的角度位置上。
![]()
我们强烈建议大家严格按照以下步骤来进行排查工作, 千万不要在完全没有头绪的时候就盲目地去调整角度进行测试, 这种做法是非常不可取的。
1. 请使用示波器或者是使用逻辑分析仪来确认输出引脚的周期是否确实为20ms, 这对应50Hz的频率。
2. 先把时长为1.5毫秒的中位脉冲信号给输出, 然后观察那个舵片的状况, 看看它能不能很稳定地停在那个90度的位置上。
3. 把时间范围继续扩展到包含零点五毫秒以及二点五毫秒这两个时间点, 然后仔细检查设备的两个方向上的限位装置, 确保它们都处于没有发生任何异常的状态。
4. 供电要单独使用5V或者6V这些外部电源。不要去让舵机从Uno这个设备的5V引脚那里取电。因为舵机在启动的时候电流会非常大, 峰值电流可以超过1.5A以上。这样做会导致Uno设备复位的情况发生。同时也会产生一种叫做失步的现象出现在舵机上面。
关于 Uno 是如何控制舵机的原理, 如果要用最精炼的一句话说清楚,那就是: 通过使用PWM脉宽来进行信号传递,使得舵机内部在接收到这个动作指令以后,进而驱动内部的齿轮组到达预设的目标位置。
脉冲宽度的具体数值直接决定了角度大小的变化, 这就是构成整个操作链路之中唯一的一个核心要素所在。只要确保脉冲周期的稳定性得到保障, 同时保持脉宽的精密度符合标准要求, 那么舵片的最终停靠状态就会非常可靠地维持在指定的角度位置上, 不会轻易出现偏差现象。
当你在进行操作的时候, 请切记以下要点: 信号连接去往PWM输出端, 供电路径则需要接入独立的电源系统, 而在初次调试阶段, 优先使用中位脉冲来进行验证。一旦你严格遵循这三个步骤完成配置与测试, 绝大多数潜在的问题都将不再发生。



