首页 > 行业资讯 >舵机
TECHNICAL SUPPORT

STM32控制SG90舵机,从接线到代码全搞定

发布时间: 2026-05-30

若要使STM32精准操控SG90舵机, 仅需把握三个关键步骤, 即正确的接线方式, 合适的PWM信号配置, 和精准的角度计算逻辑。常见的应用场景涵盖智能小车舵机转向, 机械臂关节控制, 以及云台摄像头角度调节。

01STM32与SG90舵机的接线

SG90舵机有三根线,颜色和功能对应如下:

这个棕色的线, 它所代表的是电源的负极, 也就是GND, 而这个GND呢, 是一定要连接到STM32的GND引脚上去的。

红色的线, 它所连接的是电源的正极, 也就是VCC , SG90正常开展工作时的电压处于4.8V至6V这个范围之内 , 建议采用外部5V的电源来进行供电, 切勿直接去连接STM32的3.3V或者5V引脚, 因为那样会出现电流不足的情况。

由橙色线所标识, 其为信号线情形, 与STM32的任意可输出PWM的GPIO引脚相连接, 像PA0、PA1这类引脚

常见状况: 不少使用者径直运用STM32开发板的5V引脚去为SG90供应电力, 致使舵机出现抖动现象、没法转动到指定的角度, 甚至于将开发板烧坏。正确的操作方式是采用外部5V电源(像是USB供电模块或者电池组)单独地给舵机供应电力, STM32与舵机实现共地就行。

02PWM信号配置(以TIM2通道1为例)

SG90舵机需要的PWM信号参数:

频率:50Hz(周期20ms)

脉冲宽度范围:0.5ms~2.5ms

对应角度:0°~180°

stm32控制sg90舵机_控制舵机代码_控制舵机画轨迹算法

定时器配置计算(以72MHz主频为例)

// 预分频器:72MHz / 72 = 1MHz,即1us计数一次
// 自动重装载值:1000,即周期为 = 1ms?不对,需要20ms周期
// 正确计算:72MHz / 1440 = 50kHz,自动重装载值20000,周期为20000/50kHz = 20ms
cture. = 1440  1;   // 预分频伟创动力舵机伟创动力,得到50kHz
cture. = 20000  1;      // 自动重装载值,得到20ms周期

角度与脉冲宽度对应关系

角度 脉冲宽度 占空比计算值
0.5ms 500
90° 1.5ms 1500
180° 2.5ms 2500

角度换算公式:

脉冲宽度值 = 500 + (角度 / 180)  2000

03代码实现(标准库示例)

# ".h"
void (void)
{
     ;
    Def e;
     ;
    // 使能时钟
    md(, );
    md(, );
    // 配置PA0为复用推挽输出
    . = ;
    . = ;
    . = ;
    (GPIOA, &);
    // 配置TIM2
    e. = 1440  1;
    e. = 20000  1;
    e. = 0;
    e. = ;
    (TIM2, &e);
    // 配置PWM通道1
    . = ;
    . = le;
    . = 1500;  // 初始90度
    . = ;
    (TIM2, &);
    (TIM2, );
}
// 设置舵机角度函数
void ( angle)
{
     pulse;
    if(angle > 180) angle = 180;
    pulse = 500 + (angle  2000 / 180);  // 0°对应500,180°对应2500
    (TIM2, pulse);
}

04常见问题与

Q1:舵机只抖动不转动

检查电源:SG90堵转电流约700mA,外部供电足够

检查接线:确认共地,信号线连接正确

检查占空比范围:确保脉冲宽度在0.5ms~2.5ms之间

控制舵机代码_stm32控制sg90舵机_控制舵机画轨迹算法

Q2:舵机转到指定角度后自动回中

PWM信号需要持续输出,不能在设置角度后停止定时器

检查代码中是否有其他中断或延时干扰了PWM输出

Q3:角度不精确,偏差超过10°

个别的各样舵机存有机械方面的公差情形, 提议实际去测量一下零度以及一百八十度相匹配的脉冲宽度数值。

使用更精确的定时器配置,减少预分频误差

05核心结论

STM32控制SG90舵机的关键三要素:

1. 电源:外部5V供电,共地

2. PWM, 其频率为50Hz, 脉冲宽度处于0.5ms至2.5ms的范围以内

3. 进行这样的计算: 500加上, (角度除以180)再乘以2000。

提个建议要点, 一开始需在代码之中展开针对零零度、九十度以及一百八十度这三个位置的测试, 得先去确认舵机的响应是正常的情形之后, 才能够再着手去制定复杂的控制举措。针对于多舵机同时去进行控制这一状况, 要留意STM32的PWM定时器通道资源的分配, 规避出现冲突的后果。

为所有产品提供动力单元

联系伟创动力产品专家,为你的产品推荐合适的驱动系统所需部件。

发送邮件
在线留言
WhatsApp
+86 0769 8399 3238
 
kpowerMap