树莓派GPIO入门03-GPIO控制RGB彩色LED灯

嵌入式技术

1338人已加入

描述


我们学会如何通过PWM来控制LED的亮度,这次我们还是利用PWM来控制一个RGB彩色LED灯来显示各种我们想要的颜色。

最终效果

树莓派GPIO入门03-GPIO控制RGB彩色LED灯

硬件

  • 彩色RGB二极管。我用的是淘宝买的带4根引脚的S801。你也可以用别的原理都是一样的。
  • 杜邦线4条。3根连接红色绿色蓝色,还有一根连接树莓派5V电源引脚。

硬件图

原理说明

这个RGB彩色LED里其实有3个灯,分别是红灯绿灯和蓝灯。控制这三个灯分别发出不同强度的光,混合起来就能发出各种颜色的光了。 LED灯上的4根引脚分别是VCC,R,G,B。 VCC需要接到电源正极。我们把它连到树莓派的5V引脚上。 R,G,B分别是红绿蓝灯的负极接口。我们把它们连接到树莓派的GPIO口上。 然后跟前一篇一样,使用PWM来控制3个小灯的明暗程度即可混合出各种不同颜色的光。

硬件连接

硬件连接图
引脚原理图

代码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485

#!/usr/bin/env python# encoding: utf-8import RPi.GPIOimport timeR,G,B=15,18,14RPi.GPIO.setmode(RPi.GPIO.BCM)RPi.GPIO.setup(R, RPi.GPIO.OUT)RPi.GPIO.setup(G, RPi.GPIO.OUT)RPi.GPIO.setup(B, RPi.GPIO.OUT)pwmR = RPi.GPIO.PWM(R, 70)pwmG = RPi.GPIO.PWM(G, 70)pwmB = RPi.GPIO.PWM(B, 70)pwmR.start(0)pwmG.start(0)pwmB.start(0)try:t = 0.4while True:# 红色灯全亮,蓝灯,绿灯全暗(红色)pwmR.ChangeDutyCycle(0)pwmG.ChangeDutyCycle(100)pwmB.ChangeDutyCycle(100)time.sleep(t)# 绿色灯全亮,红灯,蓝灯全暗(绿色)pwmR.ChangeDutyCycle(100)pwmG.ChangeDutyCycle(0)pwmB.ChangeDutyCycle(100)time.sleep(t)# 蓝色灯全亮,红灯,绿灯全暗(蓝色)pwmR.ChangeDutyCycle(100)pwmG.ChangeDutyCycle(100)pwmB.ChangeDutyCycle(0)time.sleep(t)# 红灯,绿灯全亮,蓝灯全暗(黄色)pwmR.ChangeDutyCycle(0)pwmG.ChangeDutyCycle(0)pwmB.ChangeDutyCycle(100)time.sleep(t)# 红灯,蓝灯全亮,绿灯全暗(洋红色)pwmR.ChangeDutyCycle(0)pwmG.ChangeDutyCycle(100)pwmB.ChangeDutyCycle(0)time.sleep(t)# 绿灯,蓝灯全亮,红灯全暗(青色)pwmR.ChangeDutyCycle(100)pwmG.ChangeDutyCycle(0)pwmB.ChangeDutyCycle(0)time.sleep(t)# 红灯,绿灯,蓝灯全亮(白色)pwmR.ChangeDutyCycle(0)pwmG.ChangeDutyCycle(0)pwmB.ChangeDutyCycle(0)time.sleep(t)# 调整红绿蓝LED的各个颜色的亮度组合出各种颜色for r in xrange (0, 101, 20):pwmR.ChangeDutyCycle(r)for g in xrange (0, 101, 20):pwmG.ChangeDutyCycle(g)for b in xrange (0, 101, 20):pwmB.ChangeDutyCycle(b)time.sleep(0.01)except KeyboardInterrupt:passpwmR.stop()pwmG.stop()pwmB.stop()RPi.GPIO.cleanup()




打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分