嵌入式面试题:一般来说,对于舵机和电机,PWM的高电平和频率分别决定什么?
下面按180° 角度舵机和360° 连续旋转舵机分开,把PWM 高电平(脉宽)和频率分别决定什么讲清楚。
一、通用基础
- PWM 周期 = 1 / 频率
- 标准舵机周期:20ms → 50Hz
- 控制核心是高电平持续时间(脉宽)
1. 180° 角度舵机(最常见,只能转 0~180°)
(1)高电平脉宽 → 决定转动角度
标准对应关系:
- 0.5ms → 0°
- 1.0ms → 45°
- 1.5ms → 90°(中位)
- 2.0ms → 135°
- 2.5ms → 180°
本质:舵机内部解码脉宽,与内部电位器比对,转到对应角度并锁死保持。
- 脉宽不变 → 角度不变
- 脉宽变化 → 角度变化
- 只要供电正常,会强力保持角度,外力掰动会自动顶回去
(2)频率 → 决定响应速度、稳定性、功耗
标准频率:50Hz(20ms)
不同频率的影响:
频率偏低(<50Hz)
- 周期变长,舵机刷新慢
- 容易抖动、反应迟钝、 holding 力变弱
标准 50Hz
- 最通用、最稳定
- 适合绝大多数模拟 / 数字舵机
频率偏高(数字舵机常用 100~300Hz)
- 每秒修正角度次数变多
- 优点:响应更快、 holding 力矩更强、更稳
- 缺点:电流更大、发热更高
- 模拟舵机不建议高频,会异常甚至烧毁
总结(180° 舵机):
- 脉宽 = 角度
- 频率 = 响应速度 + 稳定性 + 功耗
2. 360° 连续旋转舵机(可以一直转,不能锁固定角度)
这种舵机没有角度反馈,内部没有电位器,只有减速电机 + 驱动板。
(1)高电平脉宽 → 决定旋转方向 + 转速
标准对应关系:
- 1.5ms →停止
- 小于 1.5ms →顺时针转
- 脉宽越小 → 转速越快
- 大于 1.5ms →逆时针转
- 脉宽越大 → 转速越快
常见范围:
- ~1.3ms → 顺时针全速
- ~1.7ms → 逆时针全速
本质:它不是定位,而是调速 + 换向。
- 脉宽固定 → 以固定转速一直转
- 1.5ms → 静止
- 偏离 1.5ms 越多 → 转得越快
(2)频率 → 决定转速平滑度、响应、兼容性
标准依然是50Hz(20ms)
影响:
- 频率过低
- 转速会有顿挫、抖动,不够平滑
- 50Hz
- 通用、稳定
- 频率偏高
- 转速更平滑、响应更及时
- 但同样更耗电、发热更大
- 部分廉价 360 舵机不支持高频,会乱转
总结(360° 舵机):
- 脉宽 = 方向 + 转速
- 频率 = 转动平滑度 + 响应速度
最终极简对比表
| 类型 | 高电平脉宽决定 | 频率决定 |
|---|---|---|
| 180° 角度舵机 | 转动角度 | 响应速度、保持力、稳定性、功耗 |
| 360° 连续旋转舵机 | 旋转方向 + 转速 | 转动平滑度、响应速度、兼容性 |
一句话记:
- 180°:脉宽定角度,频率定稳不稳
- 360°:脉宽定方向转速,频率定顺不顺畅
先说结论:普通直流电机(带驱动模块,比如 L298N、L293D、TB6612)的 PWM:
- 高电平占空比(不是单纯高电平时间)→ 决定电机转速 **
- PWM 频率 → 决定电机噪音、发热、平滑度、效率 **
下面分开讲清楚,和舵机做个对比,你一下就懂了。
一、先分清:电机 vs 舵机 PWM 的本质区别
- 舵机 PWM:看的是高电平绝对时间(ms),比如 1.5ms、2.0ms。
- 电机 PWM:看的是高电平占整个周期的比例(占空比),和绝对时间无关。
二、普通直流电机(带 H 桥驱动)
1. 高电平占空比 → 决定转速
PWM 本质:快速开关电源,平均电压 = 占空比 × 电源电压
- 占空比 0% → 平均电压 0V → 电机停转
- 占空比 25% → 平均电压 ≈ 1/4 VCC →慢速转
- 占空比 50% → 平均电压 ≈ 1/2 VCC →中速转
- 占空比 100% → 全电压 →全速转
一句话:占空比越大,电机越快;占空比越小,电机越慢。
注意:电机方向不由 PWM 决定,而是由 ** 两根电源线的正反转(H 桥)** 决定。
2. PWM 频率 → 决定噪音、发热、平滑度
电机常用频率范围:几 kHz ~ 20kHz
(1)频率太低(比如 < 1kHz)
- 电机有明显嗡嗡声、哒哒声
- 转速波动大,不够平滑
- 电流波动大,电机 / 驱动发热
(2)频率适中(1k ~ 10kHz)
- 声音变小
- 转速平稳
- 发热适中,最常用
(3)频率很高(>16kHz ~ 20kHz)
- 进入人耳听不到的范围(超音频)
- 几乎无噪音
- 转速非常平滑
- 但开关损耗增加,驱动芯片发热略大
三、无刷电机 / 电调(ESC)控制的电机
这种其实和舵机逻辑一样:
- PWM 高电平时间(0.5~2.5ms)→ 决定转速
- 频率一般固定 50Hz 或 400Hz
- 频率主要影响响应速度,不直接调速
四、极简对比表(帮你彻底区分)
| 对象 | PWM 看什么 | 高电平 / 占空比决定 | 频率决定 |
|---|---|---|---|
| 180° 舵机 | 高电平绝对时间 | 转动角度 | 响应速度、保持力、稳定性 |
| 360° 连续舵机 | 高电平绝对时间 | 方向 + 转速 | 转动平滑度、响应 |
| 普通直流电机 | 高电平占空比 | 转速快慢 | 噪音大小、平滑度、发热、效率 |
五、一句话记忆
- 舵机:看高电平多少毫秒 → 定角度 / 转速
- 电机:看高电平占比例多少 → 定快慢
- 频率对电机:主要管声音顺不顺、烫不烫
一、先讲:舵机内部有什么(两种舵机都一样)
内部 4 大件:
- 控制板(芯片):接收 PWM、做计算、驱动电机
- 直流小电机:转得快、力气小
- 减速齿轮组:降转速、增大力气
- 电位器(可变电阻):和输出轴连在一起,实时测当前角度
二、180° 角度舵机(标准 SG90):PWM ↔ 角度 是怎么固定对应的?
核心:闭环位置控制(内部硬编码对应关系)
1. 内部 “规定死” 的对应表(出厂就写死在芯片里)
- PWM 周期固定:20ms(50Hz)(内部只认这个频率)
- 脉宽 ↔ 目标角度(芯片内部固化):
- 0.5ms → 目标 0°
- 1.0ms → 目标 45°
- 1.5ms → 目标 90°(中点)
- 2.0ms → 目标 135°
- 2.5ms → 目标 180°
2. 内部执行流程(一步一步)
- 外部给 PWM(比如 2.0ms)
- 控制板读到脉宽 → 换算成目标角度(135°)
- 电位器实时测当前角度(比如 90°)
- 算误差:135° − 90° = +45°
- 控制板驱动电机:正转,慢慢转到 135°
- 转到后:误差 = 0 → 电机停、锁死角度(保持力)
- 只要 PWM 不变,就一直锁在这个角度
3. 为什么 “固定对应”?
- 芯片内部有AD 采样:把 0.5~2.5ms 脉宽 → 转成数字值
- 同时把电位器电压→ 转成当前角度
- 内部是比例控制(简单 PID):误差大就快转,误差小就慢转
- 机械限位:内部齿轮有挡块,真的只能转到~0~180°
一句话:180° 舵机:脉宽 = 目标角度;内部闭环 “死追” 到这个角度并锁住。
三、360° 连续旋转舵机(SG90 改 / 360 版):PWM ↔ 转速 / 方向 怎么对应?
本质:把 “位置闭环” 改成了 “速度开环”,内部对应关系完全变了
1. 内部怎么改的(出厂 / 改装)
- 去掉 / 固定电位器:不让它反馈真实角度
- 要么电位器粘死在中点(一直反馈 90°)
- 要么直接拆掉、改电路
- 去掉机械限位:齿轮能无限转
- 控制板逻辑改写:不再算 “角度差”,而是算 “速度差”
2. 内部固定的对应表(芯片写死)
- 依然是20ms 周期(50Hz)
- 脉宽 ↔ 转速 + 方向(完全和角度无关):
- 1.5ms → 停止(误差 = 0 → 不转)
- <1.5ms(如 1.3ms)→ 顺时针转
- 脉宽越小(越接近 0.5ms)→ 转速越快
- >1.5ms(如 1.7ms)→ 逆时针转
- 脉宽越大(越接近 2.5ms)→ 转速越快
3. 内部执行流程
- 外部给 PWM(如 1.2ms)
- 控制板:1.2ms <1.5ms → 判定 “顺时针低速”
- 电位器一直反馈中点(90°)→ 误差永远存在
- 控制板持续输出:电机顺时针转,转速由脉宽决定
- 只要 PWM 不变,就一直以这个速度、方向转
- 给 1.5ms → 误差 = 0 → 立即停
一句话:360° 舵机:脉宽 = 方向 + 转速;内部变成 “速度控制器”,不再定位。
四、180° vs 360° 内部对应关系(最清晰对比)
| 项目 | 180° 角度舵机(SG90) | 360° 连续旋转舵机 |
|---|---|---|
| PWM 脉宽决定 | 角度位置 | 方向 + 转速 |
| 内部闭环 | 位置闭环(追角度) | 速度开环(不追角度) |
| 电位器作用 | 测真实角度 | 固定中点 / 无效 |
| 1.5ms 含义 | 90°(中间角度) | 停止 |
| <1.5ms | 角度变小(如 0°~90°) | 顺时针转 |
| >1.5ms | 角度变大(如 90°~180°) | 逆时针转 |
| 机械结构 | 有限位(0~180°) | 无限位(无限转) |
五、你最关心的:为什么 “一给脉宽就对应角度 / 转速”?
因为:
- 出厂时,芯片内部已经把「脉宽范围」和「角度 / 速度」写死了
- 不是你自己定的,是舵机厂商固化的标准
- 180° 舵机:0.5~2.5ms = 0~180°(线性)
- 360° 舵机:0.5~1.5~2.5ms = 正快→停→反快(线性)
六、一句话总结(彻底分清)
- 180° 舵机:PWM 脉宽 = 目标角度,内部闭环锁死角度
- 360° 舵机:PWM 脉宽 = 方向 + 转速,内部一直转、不定位
