1. 项目概述
这个基于STM32的智能风扇控制系统是一个典型的嵌入式硬件开发项目,通过单片机控制直流电机和舵机实现风扇的调速和转向功能。系统使用STM32F10x系列单片机作为主控,配合OLED显示屏、按键模块、电机驱动和舵机模块,构建了一个完整的闭环控制系统。
在实际开发中,我发现很多初学者在搭建类似系统时容易陷入代码调试的泥潭,而忽视了硬件电路设计和系统架构的重要性。这个项目虽然代码量不大,但涵盖了嵌入式开发的多个核心知识点,包括GPIO控制、PWM输出、定时器配置、外设驱动等,非常适合作为STM32入门的练手项目。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件设计解析
2.1 主控芯片选型
我们选用STM32F103C8T6作为主控芯片,这款芯片属于STM32F10x系列中的"中等容量"产品,具有:
- 72MHz主频的Cortex-M3内核
- 64KB Flash和20KB SRAM
- 3个通用定时器(TIM2/TIM3/TIM4)
- 37个快速I/O口
- 丰富的通信接口(USART/SPI/I2C)
选择这款芯片的主要考虑是:
- 性价比高,市场货源充足
- 性能足够应对风扇控制需求
- 开发资源丰富,社区支持好
提示:在实际采购时,注意区分正版和兼容芯片。正版STM32芯片丝印清晰,边角处理精细,而兼容芯片可能在高温环境下稳定性较差。
2.2 电机驱动电路
电机驱动部分采用H桥电路设计,使用两个GPIO(PA4和PA5)控制电机转向,一个PWM信号(PA0)控制转速。这种设计的好处是:
- 硬件成本低,仅需几个MOS管或现成的电机驱动模块
- 控制简单,通过改变两个GPIO的电平组合即可实现正反转
- PWM调速响应快,精度高
典型H桥电路参数选择:
- MOS管:IRF540N (Vds=100V, Id=33A)
- 续流二极管:1N5819
- 栅极电阻:10Ω
- 自举电容:0.1μF
2.3 舵机控制原理
项目中使用的是常见的SG90舵机,控制要点:
- 工作电压:4.8-6V
- 控制信号:50Hz PWM (周期20ms)
- 脉冲宽度:0.5ms-2.5ms对应0-180度
在代码中,我们通过以下公式计算CCR值:
code复制CCR = Angle/180*2000 + 500
其中:
