
在智能硬件项目中,指示灯经常承担“设备语言”的作用。设备是否启动、任务是否运行、数据是否处理中、执行结果是否成功、系统是否异常,很多时候不需要复杂屏幕,只需要一个状态灯就能表达清楚。本实验使用 CanMV K210 通过 PWM 控制双色 LED 的红色通道和绿色通道,让一颗双色 LED 呈现红、橙、黄、黄绿、绿等多种状态效果。本实验的重点不只是让 LED 变色,而是把 PWM 占空比、颜色编码、亮度控制、渐变算法和状态灯设计结合到一起。双色 LED 通常只有红色和绿色两个发光通道,因此代码采用0xRRGG的颜色格式,通过改变红色与绿色的亮度比例,模拟出橙色、黄色、黄绿色等混合颜色。程序运行后,LED 会循环展示设备启动、就绪、运行、处理成功、警告、低电量、错误报警、待机等状态灯效。学习目标说明理解 PWM 控制认识 PWM 占空比如何影响 LED 亮度掌握双色 LED 混色通过红色通道和绿色通道组合出红、橙、黄、黄绿、绿等颜色学会颜色编码使用0xRRGG格式表示红绿两个通道的亮度掌握灯效封装使用函数封装常亮、闪烁、渐变、呼吸和流动效果建立状态灯思维将设备启动、运行、成功、警告、错误等状态转换成可见灯效双色 LED 实验比普通 LED 亮灭实验更接近真实产品中的状态提示设计。普通 LED 通常只能表达开或关,双色 LED 则可以通过颜色、亮度、闪烁频率和渐变节奏表达更多状态。掌握这个实验后,后续可以把状态灯接入按键、传感器、摄像头识别、模型推理、网络连接和异常报警等项目中。文章目录理论基础硬件设施软件代码扩展应用总结理论基础PWM 的全称是脉冲宽度调制。它并不是直接改变电压大小,而是在很短时间内快速切换高低电平,通过“高电平持续时间占整个周期的比例”来控制平均输出效果。这个比例就是占空比。对于 LED 来说,占空比越高,人眼看到的亮度越高;占空比越低,人眼看到的亮度越低。双色 LED 可以理解成把红色 LED 和绿色 LED 封装到同一个器件中。程序分别控制红色通道和绿色通道的亮度,当红色亮、绿色灭时,看到的是红色;当红色灭、绿色亮时,看到的是绿色;当红色和绿色同时点亮时,看到的是黄色;当红色亮度高于绿色时,颜色更偏橙色;当绿色亮度高于红色时,颜色更偏黄绿色。本实验使用0xRRGG表示颜色。RR表示红色通道亮度,GG表示绿色通道亮度。例如0xFF00表示红色最亮、绿色关闭,因此显示红色;0x00FF表示绿色最亮、红色关闭,因此显示绿色;0xFFFF表示红色和绿色同时点亮,因此显示黄色。由于双色 LED 没有蓝色通道,所以无法混合出蓝色、紫色这类需要蓝色参与的颜色。下面这张流程图从电路控制链路角度展示本实验。程序先把颜色值拆成红色和绿色两个亮度值,再转换成 PWM 占空比,最后分别输出到双色 LED 的两个通道上。