单片机的PWM控制,一篇即可学废

一、 PWM是什么

PWM全称为“Pulse Width Modulation”及“脉冲宽度调制”。利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。简单的来说,PWM可以理解为一个方波,既然是方波了,那我们就可以按方波的思想来学习。

二、PWM的要点

想掌握PWM先得理解两个概念,第一个是“PWM的周期”,第二个是“占空比”。

PWM周期:

我们先来说第一个概念,PWM的周期,开头就说了哈,可以把PWM理解为一个方波,这么一来,它的周期就很好理解了,就是从一个状态的开始到下一个相同状态的开始所用的时间。如图1
单片机的PWM控制,一篇即可学废_第1张图片

PWM占空比:

占空比,顾名思义,就是高电平时间整个周期所占的比例, 这是控制PWM非常重要的概念 。我们假设高电平持续时间为T3,低电平时间为T4,那么它的占空比就是T3/(T3+T4)或者如图2中所示,假设占空比为40%,那么输出的实际电压就是V×40%=0.4*V单片机的PWM控制,一篇即可学废_第2张图片
看到这里,恭喜你,已经基本入门单片机的PWM控制了。不要放弃,接下来就是 最最最最最重要的使用了

三、PWM的控制

看完上面两个知识点,我们就相当于拥有了一把自己的宝剑,只是这把宝剑尚未开刃,接来下我们就将它变得锋利无比。

众所周知,我们单片机的I/O口作输出使用时,只能输出高电平or低电平,及1或0。显然,当我们要做呼吸灯、电机控速、使用舵机等等的时候,就需要对单片机I/O口的输出电压大小进行调节,单纯的输出高低电平肯定是无法满足要求的。这个时候我们就可以用到PWM算法对其I/O口的输出电压大小进行控制。

怎么在单片机上进行PWM控制呢?这就要使用到我们的定时器功能了,用51单片机来举例子,定时器每次+1就是1/12微秒,定时器每加12次就相当于过了1微秒,那么我们设置定时器+120次为一个循环,就会产生一个10微秒的周期。如图3单片机的PWM控制,一篇即可学废_第3张图片
那么I/O输出的电压如图4单片机的PWM控制,一篇即可学废_第4张图片
由图4可见,我们如果不用PWM控制的话,那么I/O口的输出就会一直是5V,这肯定是不能达到我们对输出电压大小控制,这个时候我们就需要用到我们前面学到的占空比的概念了,只要调整占空比的值,就可以实现对输出电压实际大小进行控制,那么如何让I/O口输出一个方波呢?

没错!!!我们只要在定时器中设置一个阈值,只要定时器的值高过这个阈值,我们就给I/O口的状态反转,就可以产生一个方波了,如图5
单片机的PWM控制,一篇即可学废_第5张图片

此时通过PWM 算法输出的实际电压就是5V×(t2/T1)=5V×50%=2.5V.
可见,只要我们改变设置的阈值(图5中的mid),就可以改变PWM的占空比,进一步去改变单片机I/O输出的实际电压。

结语

那么篇文章到这就结束了,PWM算法在单片机中只是冰山一角,还有很多很多很厉害的算法等着你们去探索,下一篇文章,我将为大家整理一下PID算法,感兴趣的话记得关注一下博主哦,码字不易,喜欢的话就点赞、收藏和关注吧!!求求了。(文中不足和不对的地方,还请各位大大指出。)

你可能感兴趣的:(单片机,嵌入式硬件,算法)