1. 项目概述
这个智能台灯项目是我最近完成的一个嵌入式系统设计,核心思路是通过多种交互方式实现对灯光亮度和色温的智能控制。作为一名长期从事STM32开发的工程师,我发现市面上的智能台灯要么功能单一,要么价格昂贵,于是决定自己动手打造一款集成了按键、语音、手势和环境光感应的多功能设备。
整个系统基于STM32F103C8T6单片机开发,这是ST公司经典的Cortex-M3内核微控制器,72MHz主频足够应对我们这个项目的需求。系统包含两个独立的LED驱动通道,分别控制高亮白灯(冷光)和高亮黄灯(暖光),通过PWM调光实现亮度调节。最特别的是集成了四种控制模式:传统按键操作、语音识别控制、手势感应控制以及根据环境光照自动调节的智能模式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件设计详解
2.1 核心控制器选型
选择STM32F103C8T6主要基于以下几点考虑:
- 价格亲民:零售价约10-15元,批量采购更低
- 性能足够:72MHz主频,20KB RAM,64KB Flash
- 丰富外设:多达3个USART、2个SPI、2个I2C接口
- 开发便捷:完善的STM32CubeMX工具链支持
实际开发中发现,这款MCU的PWM输出通道足够驱动两个LED灯组,同时还能留出资源处理其他外设通信。
2.2 灯光驱动电路设计
灯光驱动部分采用了两路独立设计:
- 白灯通道:使用5颗5630封装的高亮度冷白LED串联
- 黄灯通道:使用5颗5630封装的高亮度暖黄LED串联
每路都采用MOSFET(我选用的是IRLZ44N)作为开关元件,通过STM32的PWM信号控制导通程度。关键设计点:
- 限流电阻计算:LED正向电压约3.2V,工作电流20mA
- 对于5V供电:(5V - 3.2V×5)/0.02A = 负值(不合理)
- 实际采用12V供电:(12V - 3.2V×3)/0.02A = 120Ω(最终选用3颗串联+120Ω电阻)
2.3 传感器模块选型与连接
2.3.1 BH1750光照传感器
- 通信接口:I2C(SCL-PB6,SDA-PB7)
- 量程:1-65535 lx
- 特点:无需额外光敏电阻分压电路,直接数字输出
2.3.2 手势识别模块
选用APDS-9960集成模块:
- 集成接近、环
