描述
我们通过控制GPIO口输出高低电平来控制一只发光二极管的亮灭。这次我们来控制发光二极管的亮度。最后做出呼吸灯的效果。
最终效果
GPIO口控制亮度制作呼吸灯
硬件
原理说明
我们知道,通过LED的电流越大,LED越亮,电流越小,LED越暗。如果可以控制输出电流大小就可以控制LED的明暗了。
但是树莓派的各引脚并没有直接调整输出电流大小的功能。要想别的办法。
我们先学习一个名词:脉宽调制(PWM)
简单的说,PWM技术就是不停的通断电路并控制通断持续的时间片段长度来控制用电器在单位时间内实际得到的电能。
这么说好像还是复杂了,再简单点说,如果你的手足够快,打开电灯开关后马上关闭,如果这个时间间隔足够短,灯丝还没有全部亮起来就暗下去了。你再次打开电灯再关闭,再打开再关闭。。。如果你一直保持相同的频率,那么电灯应该会保持一个固定的亮度不变。理论上,你可以通过调整开灯持续的时间长度和关灯持续的时间长度的比例就能得到不同亮度了。这个比例被称为“占空比”。
PWM就是差不多这个意思。
树莓派1代B型的26个针脚里,有一个特殊的GPIO口是支持硬件PWM的,不过从B+开始不知道什么原因这个很实用的接口被去掉了。
但是没关系,根据我上面的描述,我们完全可以自己写一个程序来模拟PWM。
不想自己写,没关系,我们强大的GPIO库已经帮我们写好了,直接用就可以了。
硬件连接
跟前一篇一模一样的连接方式。
原理图
代码
直接看代码和注释吧,一看就能明白。
打开APP阅读更多精彩内容