0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 PWM驱动舵机实验

CHANBAEK 来源: 想啥做啥 作者: 想啥做啥 2023-11-29 16:30 次阅读

实验环境

Matlab版本: 2021b

操作系统 :Win10专业版

硬件平台 :YF-STM32-ALPHA 1R4

实验内容 :硬件在环修改参数控制舵机转动

模型与原理图

STM32 simulink驱动舵机效果如图5.1所示,本次实验用到的Simulink简易模型如图5.2所示,电路图接法如图5.3所示,YF-STM32-ALPHA开发板舵机接口位置如图5.4所示,通过改变“Constant”的值实现舵机不同角度转动,数值2.5~12.5对应0°~180°(或-90°~90°)。

图片

图5.1 硬件在环舵机转动效果

图片图5.2 PWM 驱动simulink模型

图片

图5.3 STM32舵机驱动电路

图片

图5.4 舵机接口位置

基础模型介绍与分析

PWM简介

PWM的全称是脉冲宽度调制(Pulse-width modulation),是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式;所以根据面积等效法则,可以通过对改变脉冲的时间宽度,来等效的获得所需要合成的相应幅值和频率的波形;

PWM实现不是单片机的专属,使用信号发生器产生的锯齿波结合LM393比较器,然后用一个可调电阻输出的电压作为参考电压,可以得到一个脉冲宽度可以调节的电路,如图5.5所示。

图片

图5.5 信号发生器与比较器组成PWM电路

但是实际使用过程中,读者朋友不可能带着信号发生器走,所以实际电路中一般使用555定时器来产生脉冲宽度可调电路,如图5.6所示。

图片

图5.6 555定时器PWM可调电路

专用名词解释

频率: 是指每秒钟信号从高电平到低电平再回到高电平的次数,为一个PWM波周期的倒数。如图5.7和图5.8所示,频率=1/(高电平时间+低电平时间)。

图片

图5.7 单个脉冲周期

图片

图5.8 1S内相同脉冲的个数代表频率

占空比 :是指高电平持续时间占比一个周期持续的时间。如图5.9所示,占空比=高电平时间/(高电平时间+低电平时间),可以通过控制占空比,来控制输出的等效电压。

图片

图5.9 同频率下不同占空比波形等效电压

SG90舵机外观实物与引脚定义如图5.10所示,其本质是一个脉宽控制的伺服电机,通过接收不同占空比脉冲从而实现不同角度转动,其固有驱动频率为50Hz(周期20ms),脉冲占空比与角度对应关系为5ms(2.5%)->-90°,1ms(5%)->-45°,1.5ms(7.5%)->0°,2ms(10%)->45°,2.5ms(12.5%)->90°,括号里面内容对应实际“Constant”变量值,百分百表示高电平占空比,对应的角度如图5.11所示。

图5.10 SG90舵机实物与引脚定义

图片

图5.11 SG90舵机脉冲宽度对应的角度

注 意 :实际使用中建议使用时电压不低于5V,并确保电流是否可以满足舵机驱动,≥500mA为宜,使用多个舵机同时工作时,确保足额的电流供给。

表5.1 SG90舵机参数表

产品型号使用电压工作扭矩反应转速使用温度转动角度
SG903~7.2V1.6kg/cm0.12-0.13秒/60°-30℃~60℃180°

“PWM Output”STM32专用模块与参数设置如图5.12所示,“Pin”参数栏用于配置PWM引脚,示例中使用"PA_7"对应到STM32的PA7引脚,“Initial frequency”用于设置初始频率,“Initial duty cycle”用于设置初始占空比。

图片

图5.12 “PWM Output”模块

STM32F103RBT6在simulink模型中有多个引脚支持PWM脉冲输出,可以采用图5.13所示方式同时测试或使用多个PWM脉冲控制舵机或其他脉冲设备,表5.2为该芯片的PWM脉冲具体对应的引脚和通道,内容来参考自“Pinmap_NUCLEO_F103RB”图,表中已标示的证明已经测试过,其他的由于本开发板限制,请读者朋友自行测试。

图片

图5.13 同时多个PWM工作简易模型

注 意:此表主要针对型号为STM32F103RBT6整理,其它芯片请参考此表自行测试或参考Pinmap图

表5.2 PWM对照表(F103RBT6)

STM32引脚编号通道
PA1PWM2/2
PB0PWM3/3
PA15PWM2/1
PC9PWM3/4
PC8PWM3/3
PC6PWM3/1
PA11PWM1/4
PB11PWM2/4
PA6PWM3/1
PA7PWM3/2
PC7PWM3/1
PA9PWM1/2
PA8PWM1/1
PB10PWM2/3
PB4PWM3/1
PB5PWM3/2
PB3PWM2/2
PA10PWM1/3
PA2PWM2/3
PA3PWM2/4
PB1PWM3/4
PB15PWM1/3N
PB14PWM1/2N
PB13PWM1/1N

图5.14~图5.16是作者输入不同值通过示波器测量到的实际脉冲占空比,供读者朋友参考。

图片图5.14 50Hz-5%占空比PWM模型与示波器实际显示波形

图片

图5.15 50Hz-10%占空比PWM模型与示波器实际显示波形

图片

图5.16 50Hz-15%占空比模型与示波器实际显示波形

总结

本节实验通过一个简单的PWM模型驱动舵机旋转,并验证多通道情况下PWM脉冲输出控制的可行性,为读者朋友下一步使用舵机驱动提供参考价值,大家可以思考下通过多个舵机的组合可以实现哪些好玩的东西?为使用舵机驱动的场合,其中好几个制作纯使用舵机完成,大家结合已有设备自行去实现下。

拓展延申

本节其实只使用到简单的PWM脉宽调制方式,其实在生活中还有一种用的非常广泛的脉冲电机也是使用PWM来控制的,那就是步进电机,只不过该电机接收的不是脉宽控制而是脉冲控制,即每接收一个脉冲,步进电机转动固定的角度,图5.21为工业常用步进电机参考测试电路,有条件的读者朋友可以结合本节内容实现下如何控制步进电机转动固定步数。另外读者朋友还可以结合前面小节学到的A/D采集知识或I/O输入知识制作一些好玩的东西,例如“追光向日葵”,“数字可调电源”等。

图片

图5.21 步进电机驱动测试电路

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 原理图
    +关注

    关注

    1268

    文章

    6180

    浏览量

    225662
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348738
  • Simulink
    +关注

    关注

    22

    文章

    513

    浏览量

    61564
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93991
  • 舵机
    +关注

    关注

    17

    文章

    239

    浏览量

    40392
收藏 人收藏

    评论

    相关推荐

    STM32驱动舵机时的问题???????

    STM32PWM信号驱动舵机时,为什么TFT屏一直白屏,舵机工作有时正常,有时处理器一直复位。我是直接连接的,该怎么连接,需要隔离吗?求指点
    发表于 02-16 22:21

    STM32PWM波信号只有3.3V怎么驱动需要5V信号驱动舵机

    新买了个舵机是5V电压信号驱动的,但是STM32F103C8T6的定时器3的IO口配置复用推挽输出的PWM波信号只有3.3V,加上拉电阻也只有3.8V左右,怎么才能
    发表于 10-11 15:40

    STM32PWM控制舵机

    摘自:STM32 PWM控制舵机作者:三速何时sub20发布时间: 2021-02-27 14:54:01网址:https://blog.csdn.net/weixin_44234294/article/details/1141
    发表于 06-30 07:02

    如何stm32pwm驱动舵机

    不同的信号,来控制其旋转到不同的角度。舵机接收的是PWM信号,当信号进入内部电路产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。简单来说就是给舵机一个特定
    发表于 06-30 07:11

    使用cube配置定时器产生PWM驱动舵机

    STM32CubeMX-使用cube配置定时器产生PWM驱动舵机
    发表于 08-11 07:55

    STM32产生PWM才能驱动舵机

    舵机可分为哪几类?STM32产生PWM才能驱动舵机吗?
    发表于 10-18 09:53

    STM32_PWM实验

    STM32 PWM实验,很好的学习资料,快来下载啊
    发表于 02-16 15:46 55次下载

    使用STM32单片机实现16路PWM舵机驱动的程序和工程文件

    本文档的主要内容详细介绍的是使用STM32单片机实现16路PWM舵机驱动的程序和工程文件免费下载。
    发表于 11-11 08:00 26次下载
    使用<b class='flag-5'>STM32</b>单片机实现16路<b class='flag-5'>PWM</b><b class='flag-5'>舵机</b><b class='flag-5'>驱动</b>的程序和工程文件

    STM32F4 PWM-DAC实验例程

    STM32F4 PWM-DAC实验例程(电源技术是sci吗)-STM32F4 PWM-DAC实验
    发表于 09-16 10:14 43次下载
    <b class='flag-5'>STM32</b>F4 <b class='flag-5'>PWM</b>-DAC<b class='flag-5'>实验</b>例程

    STM32—TIM3输出PWM信号驱动MG996R舵机(按键控制)

    文章目录**一、前言****二、MG996R舵机简介****三、通用定时器TIMx****四、TIM3输出PWM信号代码详解**一、前言利用STM32的TIM3的通道1输出PWM信号,
    发表于 11-23 18:21 56次下载
    <b class='flag-5'>STM32</b>—TIM3输出<b class='flag-5'>PWM</b>信号<b class='flag-5'>驱动</b>MG996R<b class='flag-5'>舵机</b>(按键控制)

    实验4——STM32PWM和DAC练习

    文章目录实验要求一、用STM32F103输出一路PWM波形(1)PWM简介(2)STM32F1 PWM
    发表于 12-09 16:21 12次下载
    <b class='flag-5'>实验</b>4——<b class='flag-5'>STM32</b>的<b class='flag-5'>PWM</b>和DAC练习

    STM32控制舵机的方法及实例

    STM32控制SG90舵机 在这篇博客中,我讲解的是SG90的180°型号的舵机。其它型号的舵机也可以参考。首先,舵机的控制方式
    发表于 12-24 19:30 122次下载
    <b class='flag-5'>STM32</b>控制<b class='flag-5'>舵机</b>的方法及实例

    stm32控制舵机——以stm32F103C8T6为例

    舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。使用stm32控制机器时,经常要用到舵机,如使某个部位转到特定的角度,或者在行进过程中的方向控制,这
    发表于 12-24 19:35 89次下载
    用<b class='flag-5'>stm32</b>控制<b class='flag-5'>舵机</b>——以<b class='flag-5'>stm32</b>F103C8T6为例

    PWM信号控制舵机原理

    PWM信号控制舵机原理
    发表于 09-21 09:32 4次下载

    智能车方向控制舵机PWM技术

    舵机 舵机是一种位置(角度)伺服的驱动器,我们可以通过给信号脚不同的占空比来让舵机进行打角进而控制小车方向。 例如C车的S3010舵机,它需
    的头像 发表于 11-14 16:54 369次阅读
    智能车方向控制<b class='flag-5'>舵机</b><b class='flag-5'>PWM</b>技术