andrew211 发表于 2013-11-14 22:30:28

RGB LED 呼吸渐变灯

买了个RGB LED 研究了两三天,做了各呼吸渐变灯,新手纯折腾,各位达人见笑了。

VCC接3.3v
RED接pin 11
GREEN接pin15
BLUE接pin13

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

附上代码rgbled.py#!/usr/bin/env python
import time#导入库
import RPi.GPIO as GPIO
import random
GPIO.setwarnings(False)#禁止占用提示
GPIO.setmode(GPIO.BOARD)#设置GPIO针脚编号模式为板载编号
#——————可修改部分————
#设置红绿蓝针脚
RED_PIN = 11
GREEN_PIN = 15
BLUE_PIN = 13
#设置切换速度
speed=0.02
#————以下请勿修改,除非你知道各参数的意义————
GPIO.setup(RED_PIN, GPIO.OUT)#GPIO模式设置
GPIO.setup(GREEN_PIN, GPIO.OUT)
GPIO.setup(BLUE_PIN, GPIO.OUT)
RED_PWM = GPIO.PWM(RED_PIN,255)#启用PWM调制颜色
GREEN_PWM =GPIO.PWM(GREEN_PIN,255)
BLUE_PWM =GPIO.PWM(BLUE_PIN,255)
RED_PWM.start(0)
GREEN_PWM.start(0)
BLUE_PWM.start(0)
r=0#初始化RGB分量
g=0
b=0
for i in range(0, 100, 1):
        r1=random.randint(0, 255)#生成下一个随机颜色
        g1=random.randint(0, 255)
        b1=random.randint(0, 255)
        dr=(r1-r)/100#计算RGB各分量的增量,100为变化幅度
        dg=(g1-g)/100
        db=(b1-b)/100
        for i in range(0, 99, 1):#输出渐变颜色
                RED=100-r/2.55 #RGB颜色换算成占空比
                GREEN=100-g/2.55
                BLUE=100-b/2.55
                RED_PWM.ChangeDutyCycle(RED)#更改占空比
                GREEN_PWM.ChangeDutyCycle(GREEN)
                BLUE_PWM.ChangeDutyCycle(BLUE)
                r=r+dr#RGB分量各分量+增量
                g=g+dg
                b=b+db
                time.sleep(speed)#每种渐变颜色停留时间
RED_PWM.stop()#停止PWM调制
GREEN_PWM.stop()
BLUE_PWM.stop()
GPIO.output(RED_PIN,1)#关闭RGB_LED
GPIO.output(GREEN_PIN,1)
GPIO.output(BLUE_PIN,1)
GPIO.cleanup()#清除GPIO通道

xmxmxm 发表于 2013-11-18 10:35:55

非常好,有启迪,顶帖主!谢谢!

heiketiguo 发表于 2013-11-18 22:56:44

不错!基础玩转才是正道!!

flexpad 发表于 2013-11-25 16:44:29

楼主,这个RGB LED在哪里淘的?PM个地址好吗?

gcd0318 发表于 2013-11-26 11:27:38

所以,渐变是通过pwm实现的?

gcd0318 发表于 2013-11-26 11:30:08

flexpad 发表于 2013-11-25 16:44 static/image/common/back.gif
楼主,这个RGB LED在哪里淘的?PM个地址好吗?

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

andrew211 发表于 2013-11-26 19:48:40

gcd0318 发表于 2013-11-26 11:27 static/image/common/back.gif
所以,渐变是通过pwm实现的?

是的

gcd0318 发表于 2014-1-28 21:46:51

andrew211 发表于 2013-11-26 19:48 static/image/common/back.gif
是的

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

gcd0318 发表于 2014-1-29 14:03:29

gcd0318 发表于 2014-1-28 21:46 static/image/common/back.gif
再请教,我也用这个灯,这个灯的电流进口是vcc,用三个色彩pin的低电位形成回路,也就是说接通gpio以后, ...

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

leonsfly 发表于 2014-9-20 07:16:51

谢谢,有个问题
页: [1]
查看完整版本: RGB LED 呼吸渐变灯