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

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

3天内不再提示

STM32F103定时器PWM驱动步进电机加减速

CHANBAEK 来源:头条号极速电子工作室 作者:头条号极速电子工 2023-02-28 14:25 次阅读

背景

之前学习了定时器的一些基本知识,实现了1ms的定时,本次学习定时器的PWM功能,用定时器产生的PWM波作为步进电机的脉冲频率,实现步进电机转动控制,并实现电机S型曲线的加减速控制。

步进电机基本知识

步进电机根据接线关系分为双极性和单极性,单极性两组线圈中间有抽头,接电源;而双极性的线圈中间无抽头。本次实验采用双极性42步进电机,24V供电

pYYBAGP9nS-AAiafAAONtKFmKoY674.png

步进电机外观图

电机驱动原理图及控制接线关系

本次电机驱动芯片采用TOSHIBA的TB67S109AFTG芯片来驱动双极性步进电机,该芯片支持最大驱动电压为50V,最大驱动电流为5A,最大支持32细分。

pYYBAGP9nUCAf_oAAAJiynFrHHw146.png

驱动电机原理图

接线关系

细分控制引脚分配

DMODE0 -----> PB0 DMODE1 ------> PB1 DMODE2 ------> PB2

电机正反转控制引脚

CW/CCW----> PC0

驱动芯片使能控制引脚

ENABLE ---->PC1

电机步进时钟PWM输入引脚(定时器2,第4通道)

CLK----->PB11

步进电机加减速原理

步进电机运行加减速控制,若是运行的距离不够加减速控制的步数,则该轨迹为三角形,即没有均速运行过程。

poYBAGP9nVCAYFhzAAGcCjKx-Bs245.png

电机加减速运行轨迹

pYYBAGP9nVyAWo3XAADjjcOLhBc122.png

加速或减速控制曲线

根据电机加减速的曲线可以通过改变定时器的定时频率,输出不同频率的PWM脉冲波,来实现电机的加减速。

代码实现过程

cube mx软件配置基本参数,实现定时器PWM和GPIO口控制的初始化。核心部分如下

poYBAGP9nW-AEOhaAAFlz928CXw776.png

定时器2的PWM波基本参数配置

生成代码工程后,添加电机加减速控制代码,其核心代码如下

步进电机控制参数的结构体定义

poYBAGP9nY6AAzk7AAxKBbba54E261.png

电机控制参数结构体定义1

poYBAGP9nZ2AApUHAAYFS6mINmg298.png

电机控制参数结构体定义2

pYYBAGP9na2ANM2MAAHdbNW8v3M661.png

计算电机加减速参数1

pYYBAGP9ncqAUXG0AANM5jWHXhA633.png

计算电机加减速参数2

poYBAGP9ne-ACzpnAAGWRrDdwHQ803.png

计算电机加减速参数3

然后在定时的中断回调函数中添加,电机加减速服务函数即可。

poYBAGP9nfuAXafZAAESmNNqJTE761.png

定时器中断回调函数

本次实验使用的板子

pYYBAGP9nheANAdgAAmcBTDJqhE991.png

实验的主控板

pYYBAGP9ni2AbgpwAAUT80HZwHc584.png

实验的电机驱动板

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

    关注

    114

    文章

    5193

    浏览量

    214210
  • 电机驱动
    +关注

    关注

    60

    文章

    1219

    浏览量

    86818
  • 步进电机
    +关注

    关注

    150

    文章

    3113

    浏览量

    147588
  • 定时器
    +关注

    关注

    23

    文章

    3251

    浏览量

    115003
  • STM32F103
    +关注

    关注

    33

    文章

    477

    浏览量

    63703
收藏 人收藏

    评论

    相关推荐

    STM32CubeIDE下配置STM32F103输出带死区的互补PWM

    STM32F103的TIM1和TIM8是高级定时器,可以产生嵌入死区时间的互补PWM波,使用STM32CubeIDE完成相关配置,可以直接生成代码,输出带死区的
    的头像 发表于 11-01 09:41 7747次阅读
    <b class='flag-5'>STM32</b>CubeIDE下配置<b class='flag-5'>STM32F103</b>输出带死区的互补<b class='flag-5'>PWM</b>波

    如何让步进电机平滑地加减速运动一段固定的行程?

    问题的提出如何让步进电机平滑地加减速运动一段固定的行程硬件平台86步进电机STM32F103ZE
    发表于 07-07 06:49

    F407步进电机梯形加减速算法是如何实现的?

    使用梯形/S形加减速算法。加减速算法的实现中,我没有采用之前的定时器主从模式的方式。因为没有想到如何消除在定时器中断服务程序中切换PWM波输
    发表于 07-08 09:52

    STM32f103系列的定时器

    简介STM32f103系列一共有8个16位的定时器;其中TIM6、TIM7是基本定时器,TIM2、3、4、5是通用定时器,TIM1、8是高级定时器
    发表于 08-18 08:05

    rtt系统堆栈大小影响了定时器PWM的输出如何解决呢

    环境:软件 RTT-nano系统硬件 F429ZGT6配置1 :rtt系统堆栈配置及地址 MAP文件信息如下Bsp_motorcontrol.c 模块是使用DMA 与 定时器同步 驱动步进
    发表于 08-23 14:33

    基于STM32F103系列单片机的11个定时器解析

    STM32F103系列的单片机一共有11个定时器,其中: 2个高级定时器 4个普通定时器 2个基本定时器 2个看门狗
    发表于 10-23 15:54 7222次阅读
    基于<b class='flag-5'>STM32F103</b>系列单片机的11个<b class='flag-5'>定时器</b>解析

    STM32F103定时器触发ADC官方程序免费下载

    本文档的主要内容详细介绍的是STM32F103定时器触发ADC官方程序免费下载
    发表于 10-30 15:40 71次下载

    STM32F103系列单片机中的定时器工作原理解析

    STM32F103系列的单片机一共有11个定时器,其中: 2个高级定时器 4个普通定时器 2个基本定时器 2个看门狗
    发表于 11-07 16:30 1.4w次阅读
    <b class='flag-5'>STM32F103</b>系列单片机中的<b class='flag-5'>定时器</b>工作原理解析

    STM32F103的4轴步进电机加减速控制工程的源代码免费下载

    本文档的主要内容详细介绍的是STM32F103的4轴步进电机加减速控制工程的源代码免费下载。
    发表于 10-22 16:52 46次下载
    <b class='flag-5'>STM32F103</b>的4轴<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>加减速</b>控制工程的源代码免费下载

    STM32F103的4轴步进电机加减速控制工程源代码免费下载

    本文档的主要内容详细介绍的是STM32F103的4轴步进电机加减速控制工程源代码免费下载。
    发表于 10-22 17:37 96次下载
    <b class='flag-5'>STM32F103</b>的4轴<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>加减速</b>控制工程源代码免费下载

    使用STM32F103单片机实现定时器实验的详细资料说明

    本文档的主要内容详细介绍的是使用STM32F103单片机实现定时器实验的详细资料说明。
    发表于 04-07 08:00 5次下载
    使用<b class='flag-5'>STM32F103</b>单片机实现<b class='flag-5'>定时器</b>实验的详细资料说明

    基于定时器中断的ULN2003驱动器/步进电机驱动程序

    STM32控制步进电机:基于定时器中断的ULN2003驱动器/步进
    发表于 03-16 09:28 10次下载
    基于<b class='flag-5'>定时器</b>中断的ULN2003<b class='flag-5'>驱动器</b>/<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>程序

    步进电机驱动算法之梯形加减速算法

    目录 步进电机梯形加减速 梯形加减速和S型曲线比较 如何产生PWM波及TIMx定时器配置 梯形
    发表于 03-17 15:08 7次下载
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>算法之梯形<b class='flag-5'>加减速</b>算法

    STM32定时器中断产生PWM控制步进电机

    电机可以使用PWM定时器中断、延时,这里用的就是定时器中断来让它转动。 一、硬件部分 1.使用的硬件 板子用的是正点原子的STM32F103
    发表于 03-23 09:56 3次下载
    用<b class='flag-5'>STM32</b><b class='flag-5'>定时器</b>中断产生<b class='flag-5'>PWM</b>控制<b class='flag-5'>步进</b><b class='flag-5'>电机</b>

    学习STM32F103定时器功能

    三勺最近在学习STM32F103定时器功能,本文主要解释在配置通用、基本、高级定时器寄存实现相应功能时遇到的一些问题。
    的头像 发表于 10-24 15:49 3332次阅读
    学习<b class='flag-5'>STM32F103</b>的<b class='flag-5'>定时器</b>功能