脉冲宽度调制(PWM)

脉冲宽度调制(Pulse Width Modulation,PWM)是一种将数字信号转换成模拟信号的方法。

一般而言I/O只能输出高低电平,如只能输出0V与5V的电压。如下图所示:

但是例如呼吸灯、伺服电机等,需要一系列连续变化(近似)的电压信号。那么就可以通过PWM来实现。

脉冲宽度调制能够在不改变直流电压大小的情况下,通过改变电压脉冲宽度的方式,来实现连续变化的等效电压值。

以0~5V的高低电平为例,在经过PWM后,能够将5V电压分成256个等距、连续的电压值,从而输出0、5/255、10/255、25/255、30/255、……一直到5V等一系列电压值。

原理

脉宽调制(PWM)控制方式就是对电路的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出波形平滑。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。

例如,把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形。如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩形脉冲的中点和相应正弦等分的中点重合,且使矩形脉冲和相应正弦部分面积相等,就得到一组脉冲序列,这就是PWM波形。根据冲量相等效果相同的原理,PWM波形和正弦半波是等效的,下图所示为正弦波PWM调制波形。

例子

一个非常流行的比喻,也许能够帮助你更好的理解PWM原理。

假设在1秒内,有0.5秒的时间开关是打开的,0.5秒关闭,那么灯就亮0.5秒,灭0.5秒。现在实现了灯的闪烁。如果把频率调高一点,比如是0.010秒,0.005秒开,0.005秒灭,那么灯的闪烁频率就很高,而人眼是感觉不到的。这时你发现不了灯在闪烁,当时你会发现手电筒的灯光亮度一直保持在原来的一半亮度。你会觉得通电时间没有变化,手电筒的电压减到了原来的一半。同理,如果1毫秒内,0.1毫秒开,0.9毫秒灭,那么,灯的亮度就只有原来的10分之一,电压也会被认为减到了十分之一。

这就是PWM的基本原理。即通过改变开关接通时间等效改变用电器的电压。

实现方法

可以通过analogWrite()函数来输出经过调制后的电压值。

analogWrite(pin,Value);//Value取值范围为0~255
文档更新时间: 2020-07-23 10:28   作者:admin