基于STM32的多模态智能LED照明系统设计

发布时间:2026/5/19 12:08:51

基于STM32的多模态智能LED照明系统设计 1. 项目概述“小光1号”是一款面向实用场景的多功能智能LED照明系统定位于家庭、宿舍、临时工位及户外应急等中小型空间的自适应照明需求。其核心设计目标并非追求参数极致而是以工程可靠性、人机交互友好性与部署灵活性为优先级在有限硬件资源下实现多模态感知、多源控制与可调输出的有机统一。项目采用模块化硬件架构划分为主控板、触摸板与灯板三个独立PCB子系统各模块通过标准排针/排母连接便于分板调试、故障隔离与后期功能扩展。整机支持三种工作模式自动感应模式环境光人体红外双触发、手动本地模式旋钮无极调光与远程遥控模式射频指令控制并内置锂电池供电路径管理兼顾市电持续运行与断电应急照明双重能力。1.1 系统架构系统采用单主控集中式架构以CKS32F103CBT6微控制器为核心承担全部逻辑调度、传感器数据融合、执行器驱动与状态管理任务。该芯片基于ARM Cortex-M3内核主频72MHz具备64KB Flash与20KB SRAM集成12位ADC、3个通用定时器、2路SPI、2路I2C、3路USART及多达37个GPIO资源裕量充足满足本项目实时性与外设扩展需求。系统功能模块划分如下感知层包含光敏电阻环境照度检测、SB612被动红外PIR传感器人体移动检测、SC04B四通道触摸IC本地按键输入、RXC68八路射频解码模块遥控指令接收执行层由两路PT4115B89E恒流驱动IC分别控制两组LED灯板配合RGB三色状态指示灯提供人机反馈能源层支持DC12V适配器主供电与3.7V锂聚合物电池备用供电通过硬件电路实现电源无缝切换与充电管理交互层物理旋钮模拟电压输入实现无极调光、触摸按键模式切换与功能触发、射频遥控器远距离操作、RGB状态灯工作模式与系统状态可视化。该架构摒弃了多MCU分布式方案避免了跨芯片通信协议开销与同步复杂度在保证功能完整性的同时显著降低了系统功耗与软件维护成本。1.2 设计哲学与工程取舍“小光1号”的设计贯穿三条主线功能必要性、硬件经济性、用户可维护性。功能必要性所有传感器与执行器均服务于明确的用户场景。例如光敏电阻与PIR传感器组合构成“暗有人”双条件触发逻辑有效规避白天误触发RXC68模块虽为8路点动输出型但仅启用其中2路模式切换与开关控制其余引脚预留为未来扩展接口避免为冗余功能增加BOM成本硬件经济性关键器件选型严格遵循“够用即止”原则。PT4115B89E作为成熟恒流驱动IC其1.2A输出能力完全覆盖两组共8颗1W LED的峰值电流需求单颗LED典型工作电流350mA8颗并联总电流约2.8A实际设计中两路灯板分时驱动或降低单灯电流以匹配IC能力铝基板虽提升散热性能但实测温升可控为后续降本提供了向FR-4板材迁移的技术依据用户可维护性所有校准操作均通过板载电位器完成无需专用设备。光控暗阈值调节电位器R16直接设置比较器参考电压使系统可在2.5V基准下实现环境照度粗略标定红外模块电位器预置为满幅状态将延时逻辑完全交由软件定时器实现确保延时精度±1%与可编程性2s~30min范围可配置。这些取舍并非技术妥协而是嵌入式产品从原型走向可用的必经路径——在确定性约束下以最小硬件代价换取最大用户价值。2. 硬件设计详解2.1 主控板电路设计主控板是整个系统的中枢其电路设计围绕电源管理、MCU运行保障、传感器接口与执行器驱动四大功能展开。2.1.1 双电源管理电路主控板支持DC12V与3.7V锂电池双输入通过硬件电路实现自动优先级切换与电池保护电源路径管理采用二极管ORing方案DC12V经肖特基二极管MBR10100CT正向压降低至0.55V10A接入主电源轨锂电池经另一颗同型号二极管接入同一轨。当DC12V存在时其电压高于锂电池标称3.7V自然钳位锂电池放电回路实现“市电优先”锂电池充电管理TYPE-C接口接入TP4056充电管理IC支持1A恒流/4.2V恒压充电集成过充、过放、过流三重保护。充电状态由绿色LED指示充满后熄灭LDO稳压输出主电源轨经AMS1117-3.3V LDO转换为3.3V供MCU、传感器及数字逻辑电路使用另设一路MP1584EN降压模块输入4.5–28V输出12V/1A为LED驱动电路提供恒定高压轨避免因输入电压波动导致LED亮度漂移。该设计省去了复杂的电源选择开关IC以极低成本实现了高可靠性的双电源无缝切换与电池安全充放电。2.1.2 环境光检测电路光敏电阻GL5528亮阻≤5kΩ暗阻≥0.5MΩ与固定电阻R1510kΩ构成分压网络输出电压随环境照度变化。该信号送入LM393双比较器的同相输入端反相端接由电位器R16100kΩ设定的可调参考电压0–3.3V。当环境照度低于阈值即分压点电压低于R16设定值时比较器输出高电平触发MCU外部中断。电路原理如图1所示GL5528 │ ├─┬─ R15 (10kΩ) ──── GND │ │ │ └─── ADC_IN0 (MCU) │ └─── VCC (3.3V)R16的调节实质是设定一个“夜间启动门限”。例如将R16滑臂调至中间位置使参考电压≈1.65V则当环境照度使GL5528阻值升至约10kΩ时对应照度约10lux典型室内黄昏水平系统判定进入可启动自动模式的暗环境。此设计避免了ADC采样量化误差对阈值判断的影响提高了光控响应的鲁棒性。2.1.3 PIR人体检测接口SB612模块输出为开漏结构内部已集成施密特触发器与延时电路。本项目禁用其硬件延时功能电位器顺时针拧到底仅将其OUT引脚上拉至3.3V后接入MCU的EXTI0引脚。MCU通过配置下降沿触发中断捕获人体移动事件。软件层启动一个可配置定时器如TIM2在中断服务程序中重载计数值定时器溢出时关闭LED输出。此方案相较硬件延时具有三大优势延时精度由系统时钟决定±1%延时时间可通过上位机指令动态修改且多个传感器事件可共享同一定时器资源节省MCU外设。2.1.4 射频解码模块接口RXC68模块为8路独立TTL电平输出型每路对应遥控器一个按键。模块上电后需进行对码操作按下模块SET键绿灯亮起10秒内按遥控器指定键本项目设定为KEY2绿灯闪烁3次表示成功。对码后KEY2输出高电平脉冲宽度约100msMCU通过EXTI1捕获该脉冲执行开关机动作KEY1则用于模式切换自动/手动/遥控。模块输出直接接入MCU GPIO无需电平转换简化了硬件设计。2.2 触摸板与灯板设计2.2.1 触摸板电路触摸板采用SC04B四通道电容式触摸IC仅启用CH1–CH3三路分别对应“模式切换”、“亮度”、“亮度–”功能。SC04B通过I2C总线与主控板通信SCL/SDA线经4.7kΩ上拉至3.3V。触摸电极采用覆铜区域设计尺寸为12mm×12mm周围保留2mm以上隔离带避免误触发。IC内置去抖动与防水算法实测在潮湿环境下仍保持稳定响应。该方案较传统机械按键显著提升了面板美观度与长期可靠性无触点磨损。2.2.2 LED驱动与调光电路灯板采用两组独立驱动电路每组由PT4115B89E驱动4颗1W白光LED3.2–3.6V350mA。PT4115B89E为降压型恒流LED驱动器其DIM引脚接受0–2.5V模拟电压输入输出电流与DIM电压呈线性关系IOUT 1.2A × VDIM / 2.5V。主控板通过PA0引脚输出PWM波经RC低通滤波R10kΩ, C100nF截止频率≈160Hz生成0–3.3V可调直流电压再经电阻分压网络10kΩ:10kΩ降至0–2.5V范围精确控制LED亮度。该方案成本低于专用DAC且PWM频率远高于人眼视觉暂留频率50Hz无可见频闪。两路灯板均采用铝基板1.0mm厚导热系数1.0W/m·KLED焊盘大面积铺铜并打过孔连接至背面铝层实测连续点亮30分钟LED结温稳定在65℃以下满足工业级寿命要求L7025,000小时。2.3 关键器件选型依据器件类别型号选型理由替代兼容性MCUCKS32F103CBT6国产替代STM32F103CBT6Pin-to-Pin与软件兼容供货稳定价格优势明显NS32F103CBT6、STM32F103CBT6LED驱动PT4115B89E高压降压恒流外围仅需电感、续流二极管、采样电阻BOM精简1.2A输出满足8颗LED分时驱动需求MT7201、BP2832A触摸ICSC04B四通道集成I2C接口内置抗干扰算法小封装SSOP16节省PCB面积TTP224、QFS224PIR传感器SB612模块化设计菲涅尔透镜已集成探测距离≥5m视角110°工作温度-20℃~70℃AM312、HC-SR501射频模块RXC688路独立输出免编码学习对码流程简单适用于小批量定制遥控器XY-MK-5V、SC2262/2272所有器件均选用主流封装LQFP48、SOP8、DIP16等便于手工焊接与AOI检测降低量产导入门槛。3. 软件设计与实现软件基于STM32CubeMX生成HAL库框架使用Keil MDK-ARM v5.37编译代码结构清晰模块间耦合度低符合嵌入式实时系统开发规范。3.1 主程序架构系统采用前后台架构Foreground-Background前台为中断服务程序ISR后台为主循环main loop。关键中断包括EXTI0PIR传感器中断下降沿触发EXTI1射频模块KEY2中断下降沿触发EXTI2触摸IC中断低电平有效表示有按键按下TIM2_UP1ms系统滴答定时器用于软件延时与状态机驱动主循环中执行非实时性任务ADC采样光敏电压、触摸按键扫描I2C读取SC04B状态寄存器、旋钮电位器电压读取ADC_IN1、LED亮度计算与PWM占空比更新、RGB状态灯颜色控制。3.2 核心功能模块实现3.2.1 自动模式状态机自动模式采用三级状态机由光控与PIR事件共同驱动typedef enum { AUTO_IDLE, // 等待暗环境 AUTO_WAITING, // 暗环境中等待人体 AUTO_ACTIVE // 已点亮计时延时 } auto_state_t; auto_state_t auto_state AUTO_IDLE; uint16_t light_timer 0; // 单位100ms void AUTO_StateMachine(void) { switch(auto_state) { case AUTO_IDLE: if (Get_LightLevel() LIGHT_THRESHOLD) { // 环境变暗 auto_state AUTO_WAITING; light_timer 0; } break; case AUTO_WAITING: if (PIR_Detected()) { // 人体进入 LED_TurnOn(); RGB_SetColor(GREEN); auto_state AUTO_ACTIVE; light_timer AUTO_DELAY_TIME; // 例如300 30s } break; case AUTO_ACTIVE: if (light_timer 0) { light_timer--; } else { LED_TurnOff(); RGB_SetColor(OFF); auto_state AUTO_IDLE; } break; } }该状态机确保仅在“暗环境人体出现”双重条件下启动照明并在无人活动后精确延时关闭杜绝长明灯现象。3.2.2 无极调光算法旋钮电位器输出电压经ADC_IN1采样12位0–4095映射为PWM占空比0–100%uint16_t adc_val HAL_ADC_GetValue(hadc1); // 0–4095 uint16_t pwm_duty (adc_val * 100) / 4095; // 线性映射 __HAL_TIM_SET_COMPARE(htim3, TIM_CHANNEL_1, pwm_duty * 100); // TIM3 ARR10000为提升手感加入10阶滑动平均滤波消除电位器接触噪声同时设置亮度下限5%防止LED熄灭上限100%防止过流。3.2.3 射频与触摸协同控制遥控器与触摸板按键功能映射一致确保操作一致性KEY1 / TOUCH_CH1循环切换模式自动→手动→遥控→自动KEY2 / TOUCH_CH2开关灯手动/遥控模式下KEY3 / TOUCH_CH3亮度增减仅手动模式有效模式切换通过全局变量system_mode标识各功能模块据此使能或屏蔽自身逻辑避免冲突。4. BOM清单与成本分析序号器件型号数量单价元小计元备注1MCUCKS32F103CBT613.23.2LQFP482LED驱动PT4115B89E20.81.6SOP83触摸ICSC04B10.60.6SSOP164PIR传感器SB61212.52.5模块5射频模块RXC6814.04.0DIP166光敏电阻GL552810.10.1Φ5mm7电位器B10310kΩ20.30.6旋钮光控8LED灯珠1W白光80.252.00.35A3.4V9铝基板定制28.016.0含LED贴片10其他阻容———5.0含LDO、滤波电容等总计35.6不含外壳与结构件整机BOM成本控制在36元以内批量1kpcs印证了“经济性”设计哲学的有效性。成本优化点集中于国产MCU替代进口、成熟LED驱动IC复用、模块化传感器降低开发风险、铝基板用量精准匹配散热需求。5. 调试与校准指南5.1 上电前检查使用万用表二极管档测量DC12V输入与TYPE-C接口之间是否短路应为开路测量3.3V LDO输入/输出端对地电阻确认无短路正常值100Ω检查PT4115B89E的VIN、SW、GND引脚焊接质量避免虚焊导致驱动失效。5.2 分步上电验证仅接DC12V观察充电LED是否熄灭用万用表测3.3V测试点确认电压为3.3V±0.1V接入锂电池充电LED应点亮测电池端电压缓慢上升烧录固件后短接触摸板与主控板按住TOUCH_CH1 3秒RGB灯应循环显示红→绿→蓝表明MCU与触摸IC通信正常。5.3 关键参数校准光控暗阈值在目标使用环境如卧室中调节R16使比较器输出在黄昏时刻恰好翻转万用表测LM393输出引脚由高变低此时系统进入自动模式准备态PIR灵敏度SB612模块电位器顺时针拧到底确保任何人体移动均可触发软件层通过调整中断消抖时间50ms过滤高频干扰射频对码严格按手册执行——模块SET键按下后绿灯亮10秒内按遥控器KEY2绿灯闪3次即成功。失败则重复无需断电。完成上述步骤后“小光1号”即可投入实际使用。其机械结构支持灯板360°旋转与180°翻转用户可根据照明需求自由调整光束角度真正实现“一灯多用”。

相关新闻