STM32F103C8T6驱动SG90舵机实战指南
引言
在机器人关节控制、智能家居窗帘电机、航模方向调整等场景中,舵机扮演着关键角色。SG90作为一款微型舵机,因其体积小、价格低、控制简单等特点,成为嵌入式开发者的首选。本文将手把手教你用STM32F103C8T6这款性价比极高的MCU来精准控制SG90舵机。
不同于简单的代码罗列,我们会从硬件原理到软件架构,从基础配置到高级封装,全方位解析舵机控制的每个技术细节。你将学到:
- 硬件层:如何正确连接SG90与STM32,避免烧毁设备
- 驱动层:PWM信号生成的底层原理与定时器配置技巧
- 算法层:角度到PWM占空比的高效转换算法
- 应用层:面向对象的舵机控制接口设计
1. 硬件连接与原理分析
1.1 SG90舵机引脚定义
SG90舵机通常有三根线:
- 红色线:电源正极(VCC),接3.3V-5V
- 棕色线:电源负极(GND)
- 黄色线:PWM信号输入
注意:虽然SG90标称工作电压为4.8V,但实测3.3V供电也能正常工作,只是扭矩会减小。若需要更大扭矩,建议使用5V供电,但需确保STM32与SG90共地。
1.2 STM32F103C8T6定时器资源
STM32F103C8T6有4个通用定时器(TIM2-TIM5),每个定时器有4个通道可用于PWM输出。我们选择TIM3的通道1(PA6引脚)作为PWM输出,原因如下:
- TIM3是通用定时器,功能齐全
- PA6引脚位置方便布线,不易与其他外设冲突
- 保留其他定时器供后续功能扩展
硬件连接示意:
| STM32引脚 | 连接目标 | 备注 |
|---|---|---|
| PA6 | SG90信号线(黄) | PWM输出 |
| 3.3V | SG90 VCC(红) | 电源 |
| GND | SG90 GND(棕) | 共地 |
2. PWM信号配置详解
2.1 SG90的PWM信号要求
SG90舵机对PWM信号有严格规范:
- 频率:50Hz(周期20ms)
- 脉冲宽度:0.5ms-2.5ms
- 对应角度:0°-180°
具体对应关系如下表:
| 高电平时间(ms) | 舵机角度(°) |
|---|---|
| 0.5 | 0 |
| 1.0 | 45 |
| 1.5 | 90 |
| 2.0 | 135 |
| 2.5 | 180 |

&spm=1001.2101.3001.5002&articleId=159362648&d=1&t=3&u=6a819520720540c3a63dcd62d867468b)
5975

被折叠的 条评论
为什么被折叠?



