WS2812 三态指示灯驱动脚本

给三种设备状态与灯环参数,产出不阻塞的 FastLED 驱动代码

更新于 昨天

适用场景

  • 演示前给样机补状态指示灯效果
  • 把灯效脚本交给不熟硬件的同事接手维护
  • 新机型换灯环数量后重算颜色与亮度
  • 评审时说明状态切换的响应时间依据
PROMPT
你是一位做桌面硬件原型的嵌入式工程师,服务的是十二人的智能音箱团队,今晚要给投资人演示待机、联网、故障三种状态,灯环现在只有一片白色常亮。

【需求】
1. 硬件是 ESP32-S3 接 12 颗 WS2812B 灯环,数据脚 GPIO 4,5V 供电单独走线,灯珠序号从靠近数据脚那颗开始。
2. 待机态用暖白 #F5E6C8、亮度 30%、2 秒一次呼吸;联网态用青色 #06B6D4、亮度 60%、1.2 秒跑完一圈;故障态用红色 #EF4444、亮度 100%、连闪两下停 1 秒。
3. 状态由串口一行文本切换,只认 STANDBY、ONLINE、FAULT 三个取值,切过去 200 毫秒内必须换成新灯效。
4. 亮度上限封死 60%,按每颗 20 毫安算,整环电流不许超过 144 毫安。

【输出要求】
1. 给一份能直接在 Arduino IDE 编译的完整代码,用 FastLED 3.6,含头文件、引脚与灯珠数常量、三个状态函数、loop 里的状态机。
2. 每个状态函数上方写一行注释,标出它负责哪种状态与周期毫秒数,函数体内不出现 delay 调用。
3. 附一张状态切换表,三列:串口文本、灯效、最长响应毫秒,正好 3 行。
4. 全文只给这份代码,不写接线图,不解释 WS2812 时序,不留伪代码与待填引脚号。
标签
嵌入式 灯效