最近在学stm32定时器的PWM输出比较,想到了pwm的一种通俗易懂的理解,以此为记录。如有错误,敬请指出!
首先,先放定义:
PWM的全称是脉冲宽度调制(Pulse-width modulation),是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式。
占空比:是一个脉冲周期内,高电平的时间与整个周期时间的比例,单位是% (0%-100%)
周期是一个脉冲信号的时间,1s内的周期T次数等于频率f,脉宽时间是指高电平时间。
分辨率:相邻周期里最小的占空比之差
pwm的调节作用来源于对“占周期”的宽度控制,“占周期”变宽,输出的能量就会提高,通过阻容变换电路所得到的平均电压值也会上升,“占周期”变窄,输出的电压信号的电压平均值就会降低,通过阻容变换电路所得到的平均电压值也会下降。也就是,在一定的频率下,通过不同的占空比 即可得到不同的输出模拟电压
我的理解:
以家中的电灯为例,我们知道开灯(关灯)在人眼看来是一瞬间的事,但实际上这是一个亮度从0逐渐增大(或亮度逐渐减小为0)的过程,这个过程很短(可能是几毫秒),所以这里假设灯亮的时间为10ms,灯亮度变化过程为线性变化,灯打开后亮度为100。
我们以10ms为一个周期去开关灯
在第一个周期的时间t=0ms时开灯,在t=1ms时关灯,此时灯的亮度根据线性变化可知为10,对应占空比为1/10=10%;
在下一个周期里,t=0ms时开灯,在t=1.1ms时关灯,此时灯的亮度为11,对应占空比为11%,分辨率为11%-10%=1%;
在下一个周期里,t=0ms时开灯,在t=1.2ms时关灯,此时灯的亮度为12,对应占空比为12%,分辨率为11%-10%=1%;
…………
一直这么下去,直到占空比为100%,在上述过程中灯经过了90次开关,然而对于人眼来说,我们无法看到90次开关的过程,由于视觉造成的残影,我们只能看到灯从灭→暗→亮(亮度由10变为100)的一个过程,这就相当于实现了一次pwm输出。
同样,对于灯从亮→暗→灭的过程也类似,由此就得到了的呼吸灯。
因此我们可以通过改变关灯的时刻(占空比),就可以调整pwm输出波形。