PWM实现呼吸灯以及对其的一些思考(一)(STM32F429)

脉冲宽度调制(Pulse Width Modulation,PWM)这个东西学过数电的都知道,它其实就是一种脉冲宽度调制的技术。首先介绍一下什么是PWM。如下图

PWM波形是脉冲波形,发出的信号只有两个状态,高(开)低(关)。其中,从一个上升(下降)沿到下一个上升(下降)沿称作一个周期(T),频率便是f = 1/T.(f:Hz,T:s.)还有一个概念就是占空比,其实也很简单,就如上图Duty Cycle = tw1/(tw1+tw2).

说清楚PWM是什么了,该说一下这玩意儿有什么用,其实很简单,用它做DAC,数字转模拟量。是不是很神奇,一堆高低电平竟然可以模拟出任意的电压值(理论上)。那这个电压值是怎么计算的呢?这就要说一下平均电压的概念,就是在一个周期内,平均值=高电平的电压值×占空比。其实完整的是这样的:

平均值=高电平的电压值×占空比 + 低电平的电压值×(1-占空比),不过一般低电平的电压值一般是0,所以就忽略了。

在示波器中,那个方波永远是那个方波(一般测量方法),但是电压表上测就会反映出模拟的电压值。差不多是这样的

 

视频中我的信号频率是50Hz,振幅是5V,这个 信号在±5V之间跳来跳去,所以我使用第二个公式,在占空比为50%时电压表测的电压差不多是0V,占空比往大变的时候,电压表的电压正向变化,反之往小变化。于是就可以这样理解,在这个方波中携带了一个电压的信息,那个如果我们把这个电压信息提取出来不就是DAC了?。于是电路就成了这样

可见加了一个滤波器后示波器的波形一下就变了,变成了一个直溜溜的的直线。是不是很神奇

这个在生活中的应用很多,最常见的就是手机充电器,原理这个差不多,基本一样。

BB了这么长时间,都在说PWM,好像一直没有说LED的事,所以现在我说一下LED,这也是我的思考部分。LED大家不陌生,中文名字应该是发光二极管,那么问题来了,既然叫发光二极管,那么它就是二极管,二极管的性质它也应该有,那么有一个矛盾,二极管只有达到了导通电压才导通,而且一旦电压超了,二极管就击穿了,所以按照正常思维,用pwm调节LED亮度就相当于调节LED两边的电压就是不对的。因为LED的电压容限小,按照这个想法亮度的调节幅度应该很小,然而并非如此。

同时,我用一节干电池(1.5v)驱动LED,发现并不能使LED亮,但两节就可以,但已经是比较亮了,所以理论上发光二极管只有达到导通调节才发光的这个条件是对的,那么用PWM调节会是怎么样的?下一篇文章继续

仿真文件下载

https://pan.baidu.com/s/1Rb5rivicrpyLJwvwCr30uA

提取码:zmoc

 关注微信公众号有更多好玩的东西

发布了25 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/little_engineer/article/details/99683894