​脉冲宽度调制 PWM,是英文 Pulse Width Modulation 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 ​

pwm 频率

是指 1 秒钟内信号从高电平到低电平再回到高电平的次数,换句话说,也就是一秒钟有多少个周期。我们通常用频率表示周期,周期的单位是赫兹 Hz,常见周期有 50Hz,100Hz等。

pwm 周期

pwm 的一个周期时间用 T 表示, 由于频率表示 1 秒内有多个周期,因此一个周期的时间等于 1 秒的时间除以 pwm 的频率,因此公式是 T = 1 / f每周期时间 = 1s / 频率。

如果频率为 50 Hz ,也就是说一个周期是 20ms 那么一秒钟就有 50 次 PWM 周期,50Hz = 20ms 一个周期。

占空比

是一个脉冲周期内,高电平的时间与整个周期时间的占比,单位是: % (0%-100%),表示方式:20%。

脉宽时间: 高电平时间

上图的脉宽时间占周期时间的比例,就是占空比,假设频率为是 100 Hz,每周期的时间是 10ms,脉宽时间是 8ms, 那么低电平时间就是 2ms,那么占空比就是80%,亦即 8 / 10 = 80%。这就是占空比为 80% 的脉冲信号。

而我们知道 PWM 就是脉冲宽度调制通过调节占空比,就可以调节脉冲宽度(脉宽时间) 而频率就是单位时间内脉冲信号的次数,频率越大。

PWM 原理

以单片机为例,我们知道,单片机的 IO 口输出的是数字信号IO 口只能输出高电平和低电平

假设高电平为 5V 低电平则为 0V 那么我们要输出不同的模拟电压,就要用到PWM,通过改变 IO 口输出的方波的占空比从而获得使用数字信号模拟成的模拟电压信号。

我们知道,电压是以一种连接 1 或断开 0 的重复脉冲序列被夹到模拟负载上去的(例如LED灯,直流电机等),连接即是直流供电输出,断开即是直流供电断开。

通过对连接和断开时间的控制,理论上来讲,可以输出任意不大于最大电压值(即0~5V之间任意大小)的模拟电压。

比方说占空比为 50% 那就是高电平时间一半,低电平时间一半,在一定的频率下,就可以得到模拟的 2.5V 输出电压那么 75% 的占空比得到的电压就是 3.75V。

pwm 的占空比控制电压的输出

也就是,在一定的频率下,通过不同的占空比 即可得到不同的输出模拟电压pwm就是通过这种原理实现 D/A 转换的。

PWM 就是在合适的信号频率下,通过一个周期里改变占空比的方式来改变输出的有效电压。

PWM 呼吸灯控制

那么,PWM 信号的实际用于什么案例,以经常使用的呼吸灯举例,一般人的眼睛对于 80Hz 以上刷新频率则完全没有闪烁感频率太小的话 看起来就会闪烁。

那么我们平时见到的 LED 灯,当它的频率大于 50Hz 的时候,人眼就会产生视觉暂留效果,基本就看不到闪烁了,而是一个常亮的 LED 灯,

你在 1 秒内,高电平 0.5 秒,低电平 0.5 秒,(频率 1 Hz)如此反复,那么你看到的电灯就会闪烁。

但是如果是 10 毫秒内,5 毫秒打开,5 毫秒关闭,(频率 100Hz) 这时候灯光的亮灭速度赶不上开关速度(LED灯还没完全亮就又熄灭了),由于视觉暂留作用 人眼不感觉电灯在闪烁,而是感觉灯的亮度少了因为高电平时间(占空比)为 50% 亮度也就为之前的 50% ,

也就是说:

  • 频率很高时,看不到闪烁,占空比越大,LED越亮;
  • 频率很低时,可看到闪烁,占空比越大,LED越亮。

所以,在频率一定下,可以用不同占空比改变 LED 灯的亮度。 使其达到一个呼吸灯的效果

pwm led 呼吸灯

PWM 电机转速控制

占空比可以实现对电机转速的调节,我们知道,占空比是高电平在一个周期之内的比值,高电平的所占的比值越大,占空比就越大。

对于直流电机来讲,电机输出端引脚是高电平电机就可以转动,当输出端高电平时,电机会转动,但是是一点一点的提速,在高电平突然转向低电平时,电机由于电感有防止电流突变的作用是不会停止的,会保持这原有的转速。

以此往复,电机的转速就是周期内输出的平均电压值,所以实质上我们调速是将电机处于一种,似停非停,似全速转动又非全速转动的状态,那么在一个周期的平均速度就是我们占空比调出来的速度。

在电机控制中,电压越大,电机转速越快,而通过 PWM 输出不同的模拟电压,便可以使电机达到不同的输出转速。

当然,在电机控制中,不同的电机都有其适应的频率,频率太低会导致运动不稳定,如果频率刚好在人耳听觉范围,有时还会听到呼啸声。频率太高的电机可能反应不过来。

如何使用 DRV8833 控制电机的速度方向 | myfreax
直流电机可以在许多设备中找到。在自己动手的项目中,它们可用于创建机器人,例如智能汽车四处行驶并避开障碍物