LED 模块
模块介绍
专门用于控制 LED 的驱动类,支持 PWM 调光、亮度调节、渐变开关、呼吸灯等丰富功能。
硬件引脚说明
| 引脚名称 | 全称/含义 | 接线颜色 | 功能描述 |
|---|---|---|---|
| S | Signal/信号 | 黄色 | 数据传输引脚,用于向 LED 发送指令或数据 |
| V | Voltage/电源 | 红色 | 电源电压输入,为设备提供工作电压 |
| G | Ground/地线 | 黑色 | 接地引脚,完成电路回路 |
初始化参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| pin | Pin | 无 | machine.Pin实例 |
导入和实例创建
python
from machine import Pin # 导入Pin模块
from led import LED # 导入LED驱动模块
# 初始化LED,连接到 GPIO4
led = LED(Pin(4)) # 创建LED实例,传入Pin对象核心属性方法
| 属性或方法 | 参数 | 返回类型 | 说明 |
|---|---|---|---|
| brightness | 无 | int | 属性:获取或设置当前亮度值(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() 的实现,亮度变化平滑但耗时较长,请避免在中断中调用