本期课程,我们来学习一下呼吸灯的实现。在前面的课程中,我们以数字引脚控制LED开或者关,LED处于两种状态:"最亮"及"熄灭"。而呼吸灯,则是LED从暗到亮逐渐变化,再从亮到暗逐渐变化,这种效果就好像人的呼吸一样,因此这种灯光的效果称为呼吸灯。实际上,呼吸灯就是通过控制LED的亮度变化来实现的。
控制LED的亮度变化,我们直观的认识就是去控制LED两端的电压及电流,也就是控制驱动LED的功率,那么单片机是如何实现这种控制呢?下面引入一个概念:PWM。PWM是英文"Pulse Width Modulation"的缩写,也就是脉冲宽度调制,简称脉宽调制。 脉冲实际上就是一序列高低变化电压信号按时间排列的组合,从低电压到高电压的变化或者从高电压到低电压的变化都是在极短的时间内完成,于是电压随时间的变化图像就可以看作一序列方波。如下图所示:
在一个脉冲(方波)序列中,从一个上升沿到下一个上升沿的时间间隔,称为脉冲的一个周期,这个周期可以是恒定的,也可以是变化的;高电平维持的时间就称为脉冲的宽度,它与脉冲周期的比值就称为"占空比"。现在来看周期固定的脉冲序列(如上图所示):脉冲的周期都是相等的,被改变的是高电平维持的时间,这种控制就是上面所说的脉宽调制。下面我们再来看一组脉冲序列