呼吸灯/闪烁灯的单片机解决方案

驱动LED可以采用拉电流的方式也可以采用灌电流的方式,要想使LED闪烁,需要用PWM来控制LED。PWM的产生方式有多种,比如纯硬件的NE555方案,让555工作在多谐振荡器状态即可产生PWM,并且频率可以通过RC电路来调节。但是这种方案的时间精度取决于RC电路,精度不高,如果对精度要求较高的话可以采用单片机产生PWM来驱动。
如果LED的功率不大的话,可以直接用单片机的GPIO口来驱动,以灌电流的方式,如下图所示。
单片机的GPIO口输出PWM,为高电平的时候LED熄灭,为低电平的时候LED被点亮。如果LED的功率比较大,可以采用三极管来驱动,电路如下图所示。
单片机控制三极管的基极,当单片机输出高电平的时候三极管导通,LED被点亮;当单片机输出低电平的时候三极管截止,LED熄灭。那么该如何控制PWM的参数呢?
PWM非常有用,可以用来控制LED的亮暗渐变实现呼吸灯的效果,比如要求10s闪烁,以10s亮10s灭为例,那PWM的周期就是10s,占空比50%,如下图所示。
即单片机输出高电平10s,再输出10s低电平,翻转周期为10s,PWM的周期为20s。可以通过单片机的定时器来实现GPIO口的翻转,这涉及到单片机的编程。
(0)

相关推荐