1. 项目概述
作为一名嵌入式开发工程师,最近完成了一个基于STM32的智能彩灯控制系统项目。这个系统不仅可以通过物理按键直接控制,还能通过手机APP远程调节灯光颜色和模式,非常适合家庭、商业场所的氛围营造。
系统核心采用STM32F103C8T6单片机作为主控芯片,搭配RGB LED驱动电路、HC-05蓝牙模块和三个独立按键。通过PWM调光技术实现1600万种颜色变化,蓝牙通信距离可达10米,响应时间小于100ms。我在实际开发中发现,这种组合在成本(总BOM约50元)和性能之间取得了很好的平衡。
2. 硬件设计详解
2.1 主控芯片选型
选择STM32F103C8T6(俗称"蓝莓派")主要基于以下考量:
- 72MHz主频的Cortex-M3内核,足够处理灯光控制逻辑
- 内置3个通用定时器,正好对应RGB三路PWM输出
- 64KB Flash + 20KB RAM,满足蓝牙协议栈存储需求
- 丰富的GPIO(37个)和USART接口(2个)
- 市场价格约15元,性价比极高
注意:购买时需认准正版ST芯片,市场上存在打磨翻新片,可能导致PWM输出不稳定。
2.2 RGB驱动电路设计
采用共阳极RGB LED模块,驱动方案对比:
- 三极管驱动方案(成本最低但需要额外限流电阻)
- MOSFET驱动(效率高但成本增加)
- 专用LED驱动IC(如WS2812,集成度高但编程复杂)
最终选择方案1,具体电路参数:
- 使用S8050 NPN三极管
- 基极电阻:1kΩ
- 集电极电阻:120Ω(限流保护LED)
- 工作电流:20mA/路
- 最大功耗:0.24W(5V供电时)
2.3 蓝牙模块配置
HC-05模块关键配置步骤:
- AT模式进入:按住模块按钮上电,波特率38400
- 设置指令:
code复制AT+NAME=RGB_CTRL // 修改设备名 AT+PSWD=1234 // 设置配对密码 AT+UART=9600,0,0 // 设置通信波特率 - 与STM32连接:
- TXD接PA10(USART1_RX)
- RXD接PA9(USART1_TX)
- VCC接3.3V(注意不可接5V)
