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)
发表评论