997直流有刷减速电机调试

7 篇文章 1 订阅

给王八用的轮毂和履带电机是997直流有刷减速电机,本文记录该电机的调试过程。

硬件信息

电机

电机的淘宝链接:997暴力直流行星齿轮减速电机24V12低速大扭力正反转可调中轴马达-淘宝网 (taobao.com)

选用的是24V235转/分钟(rpm)版本,具体参数如下表:

参数名称参数值
额定输入电压(V)24
输入电流(A)15-20
减速比51
减速级数3
减速器长度(mm)58.4
空载转速(rpm)235
额定转速(rpm)215
额定转矩(N.m)15
最大瞬间允许负载(N.m)25

电机实拍图片如下:

在这里插入图片描述

电机一头有两个突出的铜片(?可能是铜),是电机的两相,MOTOR+和MOTOR-

电机驱动

电机驱动的淘宝链接:电机驱动模块 大功率H桥驱动 直流电机驱动器 30A单路(特价版)-淘宝网 (taobao.com)

由于997电机需要用15-20A的电流,通过的电流较大。在此前提条件下,挑选了这款额定电流最大可达30A的直流电机驱动模块,而且该模块还可以通过PWM来调速,非常容易通过单片机来控制,符合我们的需求。

驱动模块的参数如下表:

参数名称参数值
尺寸(mm)60*42
额定电流(A)最大30
峰值电流(A)60
输入电压(V)12~30
控制频率(KHz)最高60

驱动模块的实拍图片如下:
在这里插入图片描述

控制器

控制器使用的是STM32F103ZET6芯片的开发板,是正点原子的精英开发板

淘宝链接:正点原子精英STM32开发板F103ZET6入门学习套件ARM嵌入式 单片机-tmall.com天猫

实拍图片:

在这里插入图片描述

仿真器

仿真器使用的ST-link

实拍图片:

在这里插入图片描述

调试过程

回路连通

首先是焊线,实现整个回路的连通

  1. 电机的两相MOTOR+和MOTOR-焊上线,12AWG,红色接MOTOR+、黑色接MOTOR-
  2. 驱动模块的电源线焊上,12AWG,红正黑负

然后将电机和驱动连接,驱动和电源连接:

在这里插入图片描述

然后将单片机的引脚与驱动模块用杜邦线连接,2个控制转向的引脚,1个GND,1个5V,1个PWM脉冲输入。

在这里插入图片描述

程序测试

PWM频率为15KHz,占空比50%:

997直流无刷减速电机调试_15KHz占空比50%

PWM频率为15KHz,占空比87.5%:

997直流无刷减速电机调试_15KHz占空比87.5%

PWM的频率为15KHz,占空比从0到50%的测试:

997直流无刷减速电机调试_15KHz占空比0-50

PWM的频率为30KHz,占空比为50%:

997直流无刷减速电机调试_30KHz占空比50%

PWM的频率为50KHz,占空比为50%:

997直流无刷减速电机调试_50KHz占空比50%

占空比增加会使得电机转速增大;增大频率并不会对转速造成影响,只要占空比一样转速就一样。从15KHz到30KHz电流减小了0.1A,但是从30KHz到50KHz电流没有减小,推测频率和电流大小没有明显关系。

转向测试:

997直流无刷减速电机调试_转向测试

转向比较顺利,但是转向时由于突然的变向会有一瞬间的大电流以及比较剧烈的抖动。

刹车测试:

997直流无刷减速电机调试_刹车测试

库文件

/**
 * @brief     997直流减速电机库文件
 * @author    JYS
 * @date      20230227
 * @details   997直流减速电机的驱动库文件,不止可以用于997电机,其它使用PWM控制的电机也可以使用
 * @attention !使用之前根据自己使用的PWM和GPIO的引脚修改或添加宏定义,并对函数实现做添加或修改
 *            !根据设定的ARR值修改PULSE_MAX宏定义,PULSE_MAX的值应为ARR值的98%(驱动限制)
 */
#include "tim.h"
#include "gpio.h"

#define HTIM htimx
#define TIM_CHANNEL1 TIM_CHANNEL_x
//add more channel macros below
#define GPIO_PORT1 GPIOx
//add more GPIO_PORT macros below
#define GPIO_PIN1 GPIO_PIN_x1
#define GPIO_PIN2 GPIO_PIN_x2
//add more GPIO_PIN macros below
#define PULSE_MAX  //add a value here

/**
 * @brief   初始化997电机
 * @return  None
 * @details 开启对应TIM对应通道的PWM
 * 
 */
void init997Motor()
{
    HAL_TIM_PWM_Start(&HTIM, TIM_CHANNEL1); //start PWM of motor
    //add more "HAL_TIM_PWM_Start" below
}

/**
 * @brief   997电机正转
 * @return  None
 * @details 修改对应引脚的高低电平;这里写的A1为1,A2为0对应正转,使用时可根据实际效果修改
 * 
 */
void rotate997MotorForeward()
{
    HAL_GPIO_WritePin(GPIO_PORT, GPIO_PIN1, GPIO_PIN_SET);   //A1
    HAL_GPIO_WritePin(GPIO_PORT, GPIO_PIN2, GPIO_PIN_RESET); //A2
    //add more "HAL_GPIO_WritePin" below
}

/**
 * @brief   997电机反转
 * @return  None
 * @details 修改对应引脚的高低电平;这里写的A1为0,A2为1对应正转,使用时可根据实际效果修改
 * 
 */
void rotate997MotorBackward()
{
    HAL_GPIO_WritePin(GPIO_PORT, GPIO_PIN1, GPIO_PIN_RESET); //A1
    HAL_GPIO_WritePin(GPIO_PORT, GPIO_PIN2, GPIO_PIN_SET);   //A2 
    //add more "HAL_GPIO_WritePin" below
}

/**
 * @brief   997电机刹车
 * @return  None
 * @details 引脚都设低电平
 * 
 */
void brake997Motor()
{
    HAL_GPIO_WritePin(GPIO_PORT, GPIO_PIN1, GPIO_PIN_RESET); //A1
    HAL_GPIO_WritePin(GPIO_PORT, GPIO_PIN2, GPIO_PIN_RESET); //A2 
    //add more "HAL_GPIO_WritePin" below 
}

/**
 * @brief     设定997电机速度
 * @param     pulse 设定的pulse值,范围[-PULSE_MAX,PULSE_MAX]
 * @return    None
 * @details   根据输入的pulse的正负判断方向,然后设定pulse值,改变占空比,从而改变速度
 * @attention !根据电机数量增加参数个数
 */
void set997MotorSpeed(int pulse)
{
    //限幅
    if(pulse >= PULSE_MAX)
        pulse = PULSE_MAX;
    else if(pulse <= -PULSE_MAX)
        pulse = -PULSE_MAX;
    //add more limits here according to param number
    //判断方向
    if(pulse >= 0)
    {
        //正转
        rotate997MotorForeward();
        //设定pulse
        __HAL_TIM_SetCompare(&HTIM, TIM_CHANNEL1, pulse);
    }
    else if(pulse < 0)
    {
        //反转
        rotate997MotorBackward();
        //设定pulse
        __HAL_TIM_SetCompare(&HTIM, TIM_CHANNEL1, -pulse);
    }
    //根据参数个数,添加更多设定pulse
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RobotFreak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值