【CanMV K210】基础实验 RGB LED 三色混光与状态灯封装

📅 发布时间:2026/9/28 3:14:15
【CanMV K210】基础实验 RGB LED 三色混光与状态灯封装
在智能硬件项目中,RGB LED 经常承担“状态表达”的角色。单色 LED 只能表达亮和灭,而 RGB LED 可以通过红、绿、蓝三路光的混合,表达更多设备状态。例如白色短亮可以表示设备启动,蓝色呼吸可以表示待机,绿色闪烁可以表示任务完成,红色长闪可以表示错误,橙色闪烁可以表示普通警告。本实验基于 CanMV K210 使用 PWM 控制 RGB 三色 LED。程序将物理引脚 6、7、8 分别作为红色、绿色、蓝色通道,通过三个 PWM 对象输出不同占空比,让 RGB LED 显示指定颜色。代码支持 RGB 元组设置、十六进制颜色设置、全局亮度缩放、平滑渐变、呼吸灯、警告闪烁、成功提示、错误提示和设备状态演示。这个实验不只是让灯变颜色,而是把颜色当成智能硬件的人机反馈语言。学习目标说明理解 PWM 控制认识 PWM 占空比如何影响 LED 亮度掌握 RGB 混色通过红、绿、蓝三路亮度组合显示不同颜色学会亮度缩放使用全局亮度参数控制整体亮度,避免灯光过亮理解灯效封装将渐变、呼吸、闪烁和状态提示封装成可复用函数建立状态灯思维使用不同颜色和闪烁节奏表达设备运行状态文章目录理论基础硬件设施软件代码扩展应用总结理论基础RGB LED 可以理解成把红色 LED、绿色 LED 和蓝色 LED 封装在一起的发光器件。程序分别控制 R、G、B 三个通道的亮度,就可以混合出不同颜色。红色通道亮度高时显示偏红,绿色通道亮度高时显示偏绿,蓝色通道亮度高时显示偏蓝;红色和绿色同时亮起可以形成黄色,绿色和蓝色同时亮起可以形成青色,红色和蓝色同时亮起可以形成紫色,三路同时亮起可以形成白色。普通 GPIO 输出只有高电平和低电平,适合控制 LED 亮灭,但不适合控制亮度变化。PWM 的作用就是通过快速开关输出形成不同占空比,让 LED 看起来具有不同亮度。占空比越高,对应通道越亮;占空比越低,对应通道越暗。本实验中的rgb_to_duty()函数,就是把 0~255 的颜色值转换成 0~100 的 PWM 占空比。RGB LED 常见结构包括共阴极和共阳极。共阴极 RGB LED 通常是数值越大越亮,三路颜色通道输出较高占空比时,对应颜色增强。共阳极 RGB LED 的亮灭逻辑相反,数值越大不一定越亮。代码中通过COMMON_ANODE参数适配这两类模块,默认按共阴极方式处理。如果实际现象出现颜色反向、熄灭异常或亮灭逻辑不符合预期,可以修改这个参数。下面的流程图从电路控制角度展示整个实验链路。程序并不是直接“设置颜色”,而是先把颜色值拆成 R、G、B 三路亮度,再转换成 PWM 占空比,最后由三个引脚分别控制 RGB LED 的三个颜色通道。