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

发布时间: 2024-06-14
来源: 电子工程世界

背景

之前学习了定时器的一些基本知识,实现了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

实验的电机驱动板


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。