查看: 6436|回复: 9
收起左侧

[项目方案] RGB LED 呼吸渐变灯

2013-11-14 22:30:28 | 显示全部楼层 |阅读模式
买了个RGB LED 研究了两三天,做了各呼吸渐变灯,新手纯折腾,各位达人见笑了。
QQ截图20131114222622.png
VCC接3.3v
RED接pin 11
GREEN接pin15
BLUE接pin13

存在的问题,个别颜色切换时会闪烁,不流畅,求指点,是不是代码有问题?

附上代码rgbled.py
  1. #!/usr/bin/env python
  2. import time#导入库
  3. import RPi.GPIO as GPIO
  4. import random
  5. GPIO.setwarnings(False)#禁止占用提示
  6. GPIO.setmode(GPIO.BOARD)#设置GPIO针脚编号模式为板载编号
  7. #——————可修改部分————
  8. #设置红绿蓝针脚
  9. RED_PIN = 11
  10. GREEN_PIN = 15
  11. BLUE_PIN = 13
  12. #设置切换速度
  13. speed=0.02
  14. #————以下请勿修改,除非你知道各参数的意义————
  15. GPIO.setup(RED_PIN, GPIO.OUT)#GPIO模式设置
  16. GPIO.setup(GREEN_PIN, GPIO.OUT)
  17. GPIO.setup(BLUE_PIN, GPIO.OUT)
  18. RED_PWM = GPIO.PWM(RED_PIN,255)#启用PWM调制颜色
  19. GREEN_PWM =GPIO.PWM(GREEN_PIN,255)
  20. BLUE_PWM =GPIO.PWM(BLUE_PIN,255)
  21. RED_PWM.start(0)
  22. GREEN_PWM.start(0)
  23. BLUE_PWM.start(0)
  24. r=0#初始化RGB分量
  25. g=0
  26. b=0
  27. for i in range(0, 100, 1):
  28.         r1=random.randint(0, 255)#生成下一个随机颜色
  29.         g1=random.randint(0, 255)
  30.         b1=random.randint(0, 255)
  31.         dr=(r1-r)/100#计算RGB各分量的增量,100为变化幅度
  32.         dg=(g1-g)/100
  33.         db=(b1-b)/100
  34.         for i in range(0, 99, 1):#输出渐变颜色
  35.                 RED=100-r/2.55 #RGB颜色换算成占空比
  36.                 GREEN=100-g/2.55
  37.                 BLUE=100-b/2.55
  38.                 RED_PWM.ChangeDutyCycle(RED)#更改占空比
  39.                 GREEN_PWM.ChangeDutyCycle(GREEN)
  40.                 BLUE_PWM.ChangeDutyCycle(BLUE)
  41.                 r=r+dr#RGB分量各分量+增量
  42.                 g=g+dg
  43.                 b=b+db
  44.                 time.sleep(speed)#每种渐变颜色停留时间
  45. RED_PWM.stop()#停止PWM调制
  46. GREEN_PWM.stop()
  47. BLUE_PWM.stop()
  48. GPIO.output(RED_PIN,1)#关闭RGB_LED
  49. GPIO.output(GREEN_PIN,1)
  50. GPIO.output(BLUE_PIN,1)
  51. GPIO.cleanup()#清除GPIO通道
复制代码
回复

使用道具 举报

2013-11-18 10:35:55 | 显示全部楼层
非常好,有启迪,顶帖主!谢谢!
回复 支持 反对

使用道具 举报

2013-11-18 22:56:44 | 显示全部楼层
不错!基础玩转才是正道!!
回复 支持 反对

使用道具 举报

2013-11-25 16:44:29 | 显示全部楼层
楼主,这个RGB LED在哪里淘的?PM个地址好吗?
回复 支持 反对

使用道具 举报

2013-11-26 11:27:38 | 显示全部楼层
所以,渐变是通过pwm实现的?
回复 支持 反对

使用道具 举报

2013-11-26 11:30:08 | 显示全部楼层
flexpad 发表于 2013-11-25 16:44
楼主,这个RGB LED在哪里淘的?PM个地址好吗?

我也买过一个,不知道是不是和lz一个店,如果你需要,可以参考一下,蓝冠,东西还可以
http://item.taobao.com/item.htm?id=17159577846
回复 支持 反对

使用道具 举报

 楼主| 2013-11-26 19:48:40 | 显示全部楼层
gcd0318 发表于 2013-11-26 11:27
所以,渐变是通过pwm实现的?

是的
回复 支持 反对

使用道具 举报

2014-1-28 21:46:51 | 显示全部楼层
andrew211 发表于 2013-11-26 19:48
是的

再请教,我也用这个灯,这个灯的电流进口是vcc,用三个色彩pin的低电位形成回路,也就是说接通gpio以后,gpio设low的那个颜色是亮的,那么会不会存在电流倒灌树莓派的问题?我是做软件的,硬件电路这部分不灵,中学物理水平,可能问的太trivial了
回复 支持 反对

使用道具 举报

2014-1-29 14:03:29 | 显示全部楼层
gcd0318 发表于 2014-1-28 21:46
再请教,我也用这个灯,这个灯的电流进口是vcc,用三个色彩pin的低电位形成回路,也就是说接通gpio以后, ...

突然我想明白了,gpio里也有地线,是不是从这里形成回路的……
回复 支持 反对

使用道具 举报

2014-9-20 07:16:51 | 显示全部楼层
谢谢,有个问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热点推荐

关注我们,了解更多

官方微信

服务时间:10:00-16:00

13714503811

公司地址:深圳市龙岗区南湾街道东门头路8号

Copyright © 2012-2020 Powered by 树莓派论坛 2019.4  粤ICP备15075382号-1
快速回复 返回列表 返回顶部