树莓派Pico驱动RGB LED模块的方法

电子说

1.2w人已加入

描述

RGB LED 模块内有红、绿、蓝三种颜色的灯丝。可以通过程序将其调制成丰富的色彩点亮。

红绿蓝分别为 R、G、B 三个引脚,接树莓派 Pico 的 3 个 GPIO 引脚(建议选择支持 PWM 的引脚)。

本教程中使用的是 GP4、GP3、GP2。这类模块有两种,分别是:

1、共阴,模块上的另一个引脚是 GND,则将该引脚与 Pico 的 GND 相连。
2、供阳。模块上的另一个引脚是 VCC,则将该引脚与 Pico 的 3V3 相连。

接线如下:

GND

下面编程,让 LED 红色、绿色、蓝色依次循环切换。代码如下:

 

import machine
import utime
 
r = machine.Pin(4, machine.Pin.OUT)
g = machine.Pin(3, machine.Pin.OUT)
b = machine.Pin(2, machine.Pin.OUT)
 
while True:
    for v in [(1,0,0), (0,1,0), (0,0,1)]:
        r.value(v[0])
        g.value(v[1])
        b.value(v[2])
        utime.sleep(0.3)

 

如果要点亮更多颜色,则需要借助 PWM 技术。控制通过三个引脚的电流,达到模拟某种颜色的效果,下面的代码随机变换颜色:

 

import machine
import utime
import urandom
 
r = machine.Pin(4, machine.Pin.OUT)
g = machine.Pin(3, machine.Pin.OUT)
b = machine.Pin(2, machine.Pin.OUT)
 
pwm_r = machine.PWM(r)
pwm_g = machine.PWM(g)
pwm_b = machine.PWM(b)
 
pwm_r.freq(1000)
pwm_g.freq(1000)
pwm_b.freq(1000)
 
def light(red, green, blue):
    pwm_r.duty_u16(65535 - red * 255)
    pwm_g.duty_u16(65535 - green * 255)
    pwm_b.duty_u16(65535 - blue * 255)
 
while True:
    light(urandom.randint(0,250), urandom.randint(0,250), urandom.randint(0,250))
    utime.sleep(0.3)

 






审核编辑:刘清

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

全部0条评论

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

×
20
完善资料,
赚取积分