STM32F103C8T6驱动SG90舵机全流程(附代码+避坑指南)

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输出,原因如下:

  1. TIM3是通用定时器,功能齐全
  2. PA6引脚位置方便布线,不易与其他外设冲突
  3. 保留其他定时器供后续功能扩展

硬件连接示意:

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

2.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值