1. 项目背景与需求分析
在当代学习办公场景中,传统台灯暴露出的问题日益明显:固定色温无法适应不同时段用眼需求、手动调光操作繁琐、缺乏坐姿监测导致视力下降风险。这正是我们选择STM32开发智能台灯的初衷——通过嵌入式技术解决这些痛点。
我去年帮一位程序员朋友改造工作台灯时深有体会:深夜编码时冷白光刺眼,而阅读文档时暖黄光又显昏暗。更麻烦的是,他常因专注编程而不知不觉凑近屏幕,导致眼睛酸胀。这些真实需求促使我们设计具备环境自适应、健康提醒功能的智能照明方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件系统架构设计
2.1 核心控制器选型
经过对比STM32F1/F4系列,最终选定STM32F103C8T6(蓝色pill开发板)作为主控,理由有三:
- 72MHz主频足够处理多传感器数据融合
- 内置PWM定时器可直接驱动LED调光
- 丰富的外设接口(I2C/SPI/USART)满足扩展需求
提示:C8T6的TIM1/TIM2高级定时器支持6路PWM输出,正好控制RGB三色LED的各通道
2.2 传感器模块配置
2.2.1 环境感知单元
- BH1750光照传感器(I2C接口)
- 测量范围1-65535 lux
- 典型误差±20%
- 采样周期120ms
实测中发现需注意:传感器表面若积灰会导致读数偏低,建议每月用酒精棉清洁一次。
2.2.2 人体检测单元
- TCRT5000红外反射传感器
- 检测距离2-10cm可调
- 数字量输出
- 安装角度建议30°倾斜
调试技巧:通过旋转电位器调节灵敏度,用白纸在灯头前移动,找到最稳定的触发距离。
2.3 执行机构设计
LED驱动采用分立方案:
- 三路MOSFET(AO3400)
- 每路最大500mA电流
- PWM频率1kHz(避免可见闪烁)
实测PWM占空比与亮度非线性关系,需建立gamma校正表:
c复制const uint8_t gamma_table[256] = {
0, 0, 0, 0, 1, 1, 1, 2, 2, 3,
// ...中间省略...
245, 247, 249, 251, 253, 255
};
3. 软件实现关键点
3.1 多任务调度设计
采用时间片轮询架构
