Skip to content

TriLight 模块

模块介绍

三通道 PWM 光输出控制器,用于控制 RGB LED 等三色光设备。支持共阳极(is_0_max=True:duty=0 最亮)或共阴极(默认)两种模式,提供丰富的颜色控制接口。

硬件引脚说明

引脚名称全称/含义接线颜色功能描述
RRed/红色红色红色通道控制引脚(需支持 PWM 输出)
GGreen/绿色绿色绿色通道控制引脚(需支持 PWM 输出)
BBlue/蓝色蓝色蓝色通道控制引脚(需支持 PWM 输出)
VVoltage/电源红色/黑色电源电压输入(共阳极接 VCC,共阴极接 GND)
GNDGround/地线黑色接地引脚(共阴极接 GND,共阳极接 VCC)

初始化参数

参数类型默认值说明
pin1PinR 通道 GPIO 引脚(需支持 PWM 输出)
pin2PinG 通道 GPIO 引脚(需支持 PWM 输出)
pin3PinB 通道 GPIO 引脚(需支持 PWM 输出)
is_0_maxboolFalse是否共阳极(True=duty=0 最亮,False=共阴极)
freqint5000PWM 频率(Hz)
max_dutyint1023最大占空比(ESP32 默认 1023,Pico 用 65535)

导入和实例创建

python
from machine import Pin  # 导入Pin模块
from trilight import TriLight  # 导入TriLight驱动模块

# 初始化共阴极 RGB LED(默认)
light = TriLight(Pin(25), Pin(26), Pin(27), is_0_max=False)  # R、G、B通道分别接GPIO25、26、27

# 初始化共阳极 RGB LED
light = TriLight(Pin(25), Pin(26), Pin(27), is_0_max=True)  # 共阳极LED需要设置is_0_max=True

核心属性方法

属性或方法参数返回类型说明
colortuple可读写属性:当前颜色 (r, g, b),每个分量 0~255
rint可读写属性:红色分量 0~255
gint可读写属性:绿色分量 0~255
bint可读写属性:蓝色分量 0~255
set_rgb()r (int 0~255), g (int 0~255), b (int 0~255)None设置颜色,三个独立参数
set_color()color (tuple/list (r,g,b))None设置颜色,传入一个 RGB 元组或列表
off()None关闭所有通道
deinit()None释放 PWM 资源

使用示例

python
from machine import Pin
from trilight import TriLight
from time import sleep_ms

# 初始化共阴极 RGB LED
light = TriLight(Pin(25), Pin(26), Pin(27), is_0_max=False)

# 方式1:使用 set_rgb()
light.set_rgb(255, 0, 0)  # 红色
sleep_ms(500)

# 方式2:使用 set_color()
light.set_color((0, 255, 0))  # 绿色
sleep_ms(500)

# 方式3:使用 color 属性
light.color = (0, 0, 255)  # 蓝色
sleep_ms(500)

# 方式4:分别设置 r, g, b
light.r = 255
light.g = 255
light.b = 0  # 黄色
sleep_ms(500)

light.off()    # 关闭
light.deinit() # 释放资源

注意事项

引脚与硬件要求

  • 确保所用引脚支持 PWM 输出(如 ESP32/ESP8266 多数 GPIO 均支持)
  • 根据硬件类型设置 is_0_max 参数(共阳极=True,共阴极=False)

使用技巧

  • RGB 各分量范围 0~255,超出范围会自动限制
  • 使用完毕后建议调用 deinit() 释放 PWM 资源