PWM是什么?

1.硬件原理


PWM, 全称Pulse Width Modulation,即脉冲宽度调制,简称脉宽调制。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,我们利用方波的占空比被调制的方法,来对一个具体模拟信号的电平进行编码。利用电平的通断时间,来控制输出电压的大小

这时,IO口输出电压=(接通时间/脉冲时间)*最大电压值。

PWM编码电压

硬件上,利用Audrino的AD转换功能,AD采集的原理以前的文章有介绍过,就不在重复了。通过A0口采集到变阻器的分压数值,通过公式转换为的PWM编码后的电压值,然后在IO 11输出给LED,实现LED的亮度调节。

2.程序解读


算法描述:

通过analogRead()函数读取模拟电压值,转换成数字存储到val变量中,并在串口监视器中显示,目的是观察电压值是否转换过来了。再通过analogWrite()函数配置PWM编码的电压从接LED的IO口输出,形成一个输入模拟电压和输入电压的关系。这样,我们只需要旋转滑动变阻器,LED的亮度就会跟着改变了。

代码解读:

详细解读请看注释。

代码

3.实物效果


当我们旋转滑动器,打开串口监视器,可以看到上面的数值在改变,面包板的LED亮度也跟着改变,当数值变大,LED变亮,当数值变小,LED变暗。

串口显示图:

串口采集值

实物图:

实物连接图

一起来看一下效果演示:

欢迎点赞,评论和转发,关注头条号:奔跑的晶体管 可以学到更多的电子知识哦。

效果演示

朋友们对于PWM又是怎么理解的呢?

PWM是什么?