您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

树莓派RGB跑马灯实验

树莓派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)

这里用了一个字典,并用for循环遍历字典,这样可以简化代码。

三:开启特效

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()

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进