0
点赞
收藏
分享

微信扫一扫

树莓派RGB跑马灯实验

西风白羽 2022-01-22 阅读 49

树莓派RGB小灯实验

第一步:接引脚

树莓派RGB灯
GPIO12R
GPIO16G
GPIO18B
GNDGND

第二步:讲解

一:初始化

import RPi.GPIO as GPIO
import time
colorr = 12
colorg = 16
colorb = 18
vartime = 2.5
GPIO.setmode(GPIO.BOARD)#采用实际的物理引脚进行编码
GPIO.setwarnings(False)#无视警告

二:格式化引脚

pinlist = {'r':colorr,'g':colorg,'b':colorb}
for i in pinlist:
    GPIO.setup(pinlist[i],GPIO.OUT)
for j in pinlist:
    GPIO.output(pinlist[j],GPIO.LOW)

三:开启特效

while True:
    for b in pinlist:
        GPIO.output(pinlist[b],GPIO.HIGH)
        time.sleep(vartime)
        GPIO.output(pinlist[b],GPIO.LOW)
        vartime = vartime*0.95
    if vartime<=0.001:
        break

这里的GPIO.output(pinlist[b],GPIO.HIGH)是让小灯亮起来。

time.sleep(vartime)让它停一下再闪烁。

然后GPIO.output(pinlist[b],GPIO.LOW)让它熄灭。

vartime = vartime*0.95让时间不断缩短。

换一种颜色再次循环。

if vartime<=0.001:
        break

以上的代码如果检测到时间小于0.001秒,就会退出while循环,终止程序。
退出后GPIO.cleanup()清空引脚。

第三步:最终代码

import RPi.GPIO as GPIO
import time
colorr = 12
colorg = 16
colorb = 18
vartime = 2.5
GPIO.setmode(GPIO.BOARD)#采用实际的物理引脚进行编码
GPIO.setwarnings(False)#无视警告

pinlist = {'r':colorr,'g':colorg,'b':colorb}
for i in pinlist:
    GPIO.setup(pinlist[i],GPIO.OUT)
for j in pinlist:
    GPIO.output(pinlist[j],GPIO.LOW)

while True:
    for b in pinlist:
        GPIO.output(pinlist[b],GPIO.HIGH)
        time.sleep(vartime)
        GPIO.output(pinlist[b],GPIO.LOW)
        vartime = vartime*0.95
    if vartime<=0.001:
        break

GPIO.cleanup()
举报

相关推荐

0 条评论