背景
之前学过一些定时器的基础知识,实现了1ms定时。这次我将学习定时器的PWM功能,利用定时器产生的PWM波作为步进电机的脉冲频率来实现步进电机旋转控制,实现电机的转动。 S曲线加减速控制。
步进电机基础知识
步进电机按接线关系分为双极和单极。单极线圈中间有抽头,与电源相连;而双极线圈中间没有抽头。本实验使用双极42步进电机,电源24V。
步进电机外观图
电机驱动原理图及控制接线关系
该电机驱动芯片采用TOSHIBA的TB67S109AFTG芯片来驱动双极步进电机。该芯片支持最大驱动电压50V,最大驱动电流5A,最大支持32细分。
驱动电机原理图
接线关系
细分控制引脚分配
DMODE0 ----- PB0 DMODE1 ------ PB1 DMODE2 ------ PB2
电机正反转控制引脚
顺时针/逆时针----PC0
驱动芯片使能控制引脚
使能----PC1
电机步进时钟PWM 输入引脚(定时器2,通道4)
时钟-----PB11
步进电机加减速原理
步进电机运行加速和减速控制。如果运行距离不足以满足加减速控制步骤,则轨迹将是三角形,即不存在匀速运行过程。
电机加减速轨迹
加减速控制曲线
根据电机加减速曲线,改变定时器的定时频率,输出不同频率的PWM脉冲波,即可实现电机加减速。
代码实现流程
Cube mx软件配置基本参数,实现定时器PWM和GPIO口控制的初始化。核心部分如下
定时器2的PWM波基本参数配置
生成代码工程后,添加电机加减速控制代码。核心代码如下
步进电机控制参数的结构定义
电机控制参数结构体定义1
电机控制参数结构体定义2
计算电机加减速参数1
计算电机加减速参数2
计算电机加减速参数3
然后在定时中断回调函数中添加电机加减速服务函数。
定时器中断回调函数
本次实验使用的板子
实验主控板
实验电机驱动板