PWM代表“脉冲宽度调制”和“脉宽调制”。 它是一种非常有效的技术,利用微处理器的数字输出来控制模拟电路,广泛应用于从测量和通信到功率控制和转换的许多领域。 简单来说,PWM可以理解为方波。 既然是方波,我们就可以按照方波的思路来学习。
2. PWM的要点
如果想要掌握PWM,首先必须了解两个概念。 第一个是“PWM 周期”,第二个是“占空比”。
脉宽调制周期:
先说第一个概念,PWM的周期。 正如一开始提到的,PWM可以理解为方波。 这样一来,它的循环就很容易理解了,就是从一个状态开始到下一个状态。 相同状态开始所需的时间。 图1
脉宽调制占空比:
占空比,顾名思义,就是高层时间在整个周期中所占的比例。 这是控制 PWM 时非常重要的概念。 我们假设高电平持续时间为T3,低电平时间为T4,那么它的占空比为T3/(T3+T4)或者如图2所示,假设占空比为40%,那么输出的实际电压为V×40%=0.4*V
看到这里,恭喜你,你已经基本入门了单片机的PWM控制。 不要放弃,下一步才是最重要的用处。
3. 脉宽调制控制
读完以上两个知识点,我们就相当于拥有了自己的一把剑,只不过这把剑还没有磨砺。 接下来,我们将使其变得非常锐利。
众所周知,当我们单片机的I/O口作为输出时,只能输出高电平或低电平,以及1或0。显然,当我们要做呼吸灯、电机调速时,要用到舵机等等,我们需要调整单片机I/O口的输出电压。 单纯输出高低电平肯定无法满足要求。 这时,我们可以利用PWM算法来控制其I/O口的输出电压。
如何对单片机进行PWM控制? 这就需要用到我们的定时器函数。 以51单片机为例,定时器每次+1就是1/12微秒,定时器每加12次就相当于1微秒。 那么我们设置Timer+120次为一个周期,这样就会产生一个10微秒的周期。 如图3所示
那么I/O输出的电压如图4所示
从图4可以看出,如果我们不使用PWM控制,I/O端口的输出将始终为5V。 这肯定不允许我们控制输出电压。 这个时候,我们就需要用到我们之前学过的会计方法。 引入了占空比的概念。 只要调节占空比的值,就可以控制输出电压的实际大小。 那么如何让I/O口输出方波呢?
这是正确的! ! ! 我们只需要在定时器中设置一个阈值即可。 只要定时器的值高于这个阈值,我们就会反转I/O端口的状态并生成方波,如图5所示。
此时通过PWM算法实际输出的电压为5V×(t2/T1)=5V×50%=2.5V。
可见,只要改变设定的阈值(图5中的mid),就可以改变PWM的占空比,进而改变单片机I/O输出的实际电压。
结论
本文到此结束。 微控制器中的 PWM 算法只是冰山一角。 还有很多很多强大的算法等待你去探索。 下一篇文章我将为大家整理一下PID算法。 如果有兴趣,记得关注博主,编码不易,喜欢的话请点赞、收藏、关注! ! 请。 (文中如有不足或错误,请指出。)