PWM 占空比计算器
支持「频率+占空比→时长」和「周期+高电平时长→占空比」两种计算模式,并可选输入 MCU 时钟频率计算 PWM 分辨率位数。
免费在线工具
Loading…
使用说明
- 选择计算模式:模式 A「频率 + 占空比 → 时长」,或模式 B「周期 + 高电平时长 → 占空比」,两个模式切换后下方输入区随之变化。
- 模式 A:输入频率(Hz)和占空比(0~100%)。
- 模式 B:输入周期 T(秒)和高电平时长 Th(秒),Th 会自动限制不超过 T。
- 可选:点击 Arduino(16MHz)/STM32(72MHz)/ESP32(240MHz)/Pi Pico(133MHz)预设按钮,或手动输入 MCU 时钟频率(Hz),用于计算该频率下的 PWM 分辨率;点击「不计算」或将时钟频率清零则不显示分辨率结果。
- 点击「计算」按钮(或修改任一输入自动触发计算)。
- 结果区展示频率、占空比、周期 T、高电平时长 Th、低电平时长 Tl、高低比例六项核心结果;若填写了时钟频率,额外展示「PWM 分辨率」区(分辨率位数及对应级数)。
- 「各时间单位」区以科学计数法及 ms/μs/ns 多种单位展示周期、高电平、低电平时长的详细数值,便于对照示波器读数或代码配置。
- 点击「加载示例数据」可恢复模式 A、频率=1000Hz、占空比=50%、时钟=16MHz(Arduino)的默认示例。
功能介绍
- 提供两种输入模式互换计算:模式 A 由频率和占空比反推周期、高低电平时长;模式 B 由周期和高电平时长正推频率和占空比,覆盖两种常见的已知条件场景。
- 核心时间参数(周期、高电平时长、低电平时长)自动换算为秒、毫秒、微秒、纳秒等多种单位并列展示,减少手动单位换算的出错概率。
- 可选输入 MCU 时钟频率后,按公式「分辨率级数 = floor(时钟频率/PWM频率)」「分辨率位数 = floor(log2(级数))」计算该 PWM 频率下定时器能达到的占空比调节精度(位数与级数)。
- 内置 Arduino(16MHz)、STM32(72MHz)、ESP32(240MHz)、Raspberry Pi Pico(133MHz)四种常见 MCU 时钟频率预设按钮,一键代入常见开发板参数。
- 模式 B 下对高电平时长 Th 做边界限制,自动约束在 0 到周期 T 之间,避免出现占空比超过 100% 的无效结果。
使用场景
舵机/电调控制信号参数核算
舵机信号周期通常为 20ms、高电平 1~2ms,使用模式 B 输入周期和高电平时长,快速得到对应的占空比百分比,用于代码中的占空比配置。
LED 调光 PWM 占空比与亮度对应关系设计
使用模式 A 输入目标 PWM 频率和期望占空比,得到具体的高低电平时长,用于定时器寄存器配置或软件 PWM 实现。
MCU 定时器 PWM 分辨率评估
在给定 MCU 时钟频率和目标 PWM 频率下,计算实际可达到的占空比调节位数(如 8bit/10bit),判断是否满足调光平滑度或电机调速精度需求。
不同频率单位换算核对(Hz/kHz/MHz 与 s/ms/μs/ns)
调试逻辑分析仪或示波器抓取的 PWM 波形数据时,将频率或时间读数快速换算为其他单位,与代码中配置的寄存器值进行核对。
常见问题
模式 A 和模式 B 分别适用于什么场景?
模式 A(频率+占空比→时长)适用于你已经知道目标 PWM 频率和占空比百分比,想反推出具体的高低电平时长用于定时器配置的场景;模式 B(周期+高电平时长→占空比)适用于你从示波器或数据手册中直接读到了周期和高电平时长(如舵机信号手册常给出「周期20ms,脉宽1~2ms」),想知道对应占空比百分比是多少的场景。
PWM 分辨率是怎么算出来的,为什么有时候不显示?
PWM 分辨率反映定时器在给定时钟频率下能把一个 PWM 周期细分成多少级来调节占空比,计算公式为:分辨率级数 = floor(MCU时钟频率 / PWM频率),分辨率位数 = floor(log2(级数))。只有当你填写了大于 0 的时钟频率时才会显示这部分结果;留空、填 0 或点击「不计算」按钮时,该区域会隐藏,因为脱离具体时钟频率,分辨率是没有意义的。
模式 B 里如果高电平时长 Th 输入得比周期 T 还长会怎样?
工具会自动将 Th 限制在 0 到 T 之间(取 Math.min(period, highTime)),也就是说即使你输入的 Th 大于 T,实际参与计算的值也会被截断为等于 T,此时占空比会显示为 100%,不会出现占空比超过 100% 的异常结果。
为什么同一个 PWM 频率,Arduino 和 ESP32 算出的分辨率位数不一样?
因为分辨率级数取决于「MCU时钟频率 / PWM频率」的比值,Arduino 默认时钟频率 16MHz,ESP32 默认 240MHz,时钟频率相差 15 倍,在相同 PWM 频率下 ESP32 能把一个周期细分成更多级数,因此理论可达到的分辨率位数更高,这也是选择更高主频 MCU 有助于实现更精细占空比调节的原因之一。