海纳百客

海纳百客

树莓派 Pico 驱动 RGB LED 模块

吃瓜阿阳

友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com

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

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

本教程中使用的是 GP4、GP3、GP2。这类模块有两种,分别是:
1、共阴,模块上的另一个引脚是 GND,则将该引脚与 Pico 的 GND 相连。
2、供阳。模块上的另一个引脚是 VCC,则将该引脚与 Pico 的 3V3 相连。

接线如下:

下面编程,让 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)

    标签:

    发布评论 条评论)

    评论列表