用定时器做个呼吸灯,实现亮度由亮到暗逐渐变化过程

在单片机中定时器的工作还是挺大的 , 可以利用定时器功能精准对外设延时,可以利用这一点做个万年历,精确度还是比较乐观的 , 我之前也做过,如果大家喜欢的话,我非常愿意分享制作方法 , 今天分享一个特别有意思的制作——呼吸灯 。

用定时器做个呼吸灯,实现亮度由亮到暗逐渐变化过程

呼吸灯制作图
呼吸灯制作起来挺有意思的,原理很简单,只要在短时间内,比如在0.05s内,让LED灯亮0.01s,灭0.04s,由于时间较短LED灯还没来得及灭掉,又再次亮起 , 效果就是比正常亮时要暗,如果亮的时间占不亮的时间越长 , 根据能量守恒可知LED会越亮,我们在短时间内不断调整这个占空比,让LED灯由不亮逐渐变为全亮,再由全亮变为部分亮,这就形成了呼吸灯 。

用定时器做个呼吸灯,实现亮度由亮到暗逐渐变化过程

呼吸灯效果
由于呼吸灯需要在短时内进行亮灭,时间一般都是毫秒级的,所以对我们人来说是不可能达到这种速度的,所以我们只能用单片机来实现,我们所用的就是单片机定时器功能,由于定时器计时较准,再加上定时器运行不占用CPU,大大提高了运行效率,在控制方面我们选用算法为PWM算法,其原理就是我所说的上一段,PWM结合定时器 , 可以把呼吸灯功能完美实现 。

在硬件方面我们选用51单片机再加上LED,LED接在P1口,主要在程序上 , 我们通过写程序,打开单片机定时器功能,利用定时器产生一个PWM,从P1口输出,这就完成了呼吸灯的制作 。
用定时器做个呼吸灯,实现亮度由亮到暗逐渐变化过程

所选单片机及成果图片

这次我们使用的单片机功能来实现的这个功能,其实我们也可以不用单片机来做,可以选用自带定时功能的NE555定时器来制作,这对没学过单片机的来说是个福音,其实原理是一样的 。
【用定时器做个呼吸灯,实现亮度由亮到暗逐渐变化过程】在电子领域会有很多有趣的小制作,结合单片机就会更多了,但是单片机必须得有编程基础,由于程序较长 , 我们也不可能每次把程序展示给大家,只能给予一个原理说明,以及一个方向指导,对感兴趣的同学引导一个道路,我也希望你们会越走越远 。

相关经验推荐