Skip to content

LED 模块

模块介绍

专门用于控制 LED 的驱动类,支持 PWM 调光、亮度调节、渐变开关、呼吸灯等丰富功能。

硬件引脚说明

引脚名称全称/含义接线颜色功能描述
SSignal/信号黄色数据传输引脚,用于向 LED 发送指令或数据
VVoltage/电源红色电源电压输入,为设备提供工作电压
GGround/地线黑色接地引脚,完成电路回路

初始化参数

参数类型默认值说明
pinPinmachine.Pin实例

导入和实例创建

python
from machine import Pin  # 导入Pin模块
from led import LED      # 导入LED驱动模块

# 初始化LED,连接到 GPIO4
led = LED(Pin(4))        # 创建LED实例,传入Pin对象

核心属性方法

属性或方法参数返回类型说明
brightnessint属性:获取或设置当前亮度值(0~1023),设置时自动更新 PWM 输出
set_brightness()brightness (int 0~1023)None设置 LED 亮度
on()None打开 LED,恢复至当前亮度
off()None关闭 LED(亮度设为 0)
switch()None切换 LED 当前开关状态
brighter()step=100 (int)None增加亮度,步长默认 100
darker()step=100 (int)None降低亮度,步长默认 100
blink()times=1 (int), interval=500 (int)None闪烁指定次数,interval 为亮灭间隔(毫秒)
fade_to()target_brightness=1023 (int), steps=50 (int), interval=40 (int)None平滑渐变到目标亮度(0~1023)
fade_on()steps=50 (int), interval=40 (int)None平滑淡入(从 0 到当前记忆亮度)
fade_off()steps=50 (int), interval=40 (int)None平滑淡出(从当前亮度到 0)
breathe()steps=50 (int), interval=20 (int)None执行一次呼吸灯效果(淡入 + 淡出)

使用示例

基本控制

python
from led import LED
from machine import Pin

# 初始化连接到 GPIO4 的 LED
led = LED(Pin(4))

# 基本控制
led.on()        # 开启
led.off()       # 关闭
led.switch()    # 切换状态

亮度控制

python
from led import LED
from machine import Pin

# 初始化连接到 GPIO4 的 LED
led = LED(Pin(4))

# 闪烁与亮度设置
led.blink(times=3, interval=500)  # 闪烁3次,间隔500ms
led.set_brightness(1023)          # 最大亮度(0–1023)
led.brightness = 1023             # 等效写法

# 步进调整亮度
led.brighter(step=50)             # 增加亮度,步长50
led.darker(step=50)               # 降低亮度,步长50

亮度渐变

python
from led import LED
from machine import Pin

# 初始化连接到 GPIO4 的 LED
led = LED(Pin(4))

# 亮度渐变效果
led.darker(steps=300)             # 渐暗至最暗
led.brighter(steps=300)           # 渐亮至当前设定亮度
led.fade_to(brightness=500)       # 平滑过渡到亮度500

灯光特效

python
from led import LED
from machine import Pin

# 初始化连接到 GPIO4 的 LED
led = LED(Pin(4))

# 特效
led.fade_off()  # 渐隐关闭
led.fade_on()   # 渐显开启
led.breathe()   # 呼吸灯效果

循环使用

python
from led import LED
from machine import Pin
from time import sleep_ms

# 初始化连接到 GPIO4 的 LED
led = LED(Pin(4))

while True:
    # 循环呼吸灯效果
    led.breathe()
    sleep_ms(1000)  # 每次呼吸后暂停1秒

注意事项

引脚要求

确保所用引脚支持 PWM 输出(如 ESP32/ESP8266 多数 GPIO 均支持)

性能提示

  • 在 while True 循环中请配合延时函数使用,防止程序过载
  • 本模块使用 time.sleep_ms() 实现延时,为阻塞操作,不适用于实时性要求极高的场景

输入限制

  • brightness 有效范围为 0~1023,超出范围会抛出 ValueError

功能说明

  • fade_on() 和 fade_off() 方法在 LED 已处于目标状态时会打印提示信息并跳过
  • breathe() 效果依赖于 fade_on() 和 fade_off() 的实现,亮度变化平滑但耗时较长,请避免在中断中调用