我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/

本文介绍X-CTR100控制器的直流调速电机控制,X-CTR100具有4路专用直流电机调速接口,PWM进行调速,可用于航、机械臂、机器人等制作。

原理

X-CTR100左侧MNOP接口可实现4路直流电机PWM调速控制,通过TIM1的四个通道实现,每个控制接口配置两个辅助IO,方便实现转向、刹车等控制效果,直流电机控制接口需要配合直流电机驱动使用。X-CTR100的电机控制可用于机器人、智能车等具有直流电机调速控制的场合。

X-CTR100电机接口需要配合电机驱动,可使用配套专用电机驱动模块X-CTR100-MDX2或X-CTR100-MDX4。

X-CTR100-MDX4连接方式如下图所示,X-CTR100-MDX4详细资料请参考硬件资料中的扩展模块资料。

TB6612

TB6612FNG引脚图 TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机。

TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止;PWM支持频率高达100 kHz;待机状态;片内低压检测电路与热停机保护电路;工作温度:-20~85℃;SSOP24小型贴片封装。

TB6612FNG的主要引脚功能:AINl/AIN2、BIN1/BIN2、PWMA/PWMB为控制信号输入端;AO1/A02、B01/B02为2路电机控制输出端;STBY为正常工作/待机状态控制引脚;VM(4.5~15 V)和VCC(2.7~5.5 V)分别为电机驱动电压输入和逻辑电平输入端。

TB6612FNG是基于MOSFET的H桥集成电路,其效率高于晶体管H桥驱动器。相比L293D每通道平均600 mA的驱动电流和1.2 A的脉冲峰值电流,它的输出负载能力提高了一倍。相比L298N的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需外接电源滤波电容就可以直接驱动电机,利于减小系统尺寸。对于PWM信号,它支持高达100 kHz的频率,相对以上2款芯片的5 kHz和40 kHz也具有较大优势。

例程

控制四路电机实现增速正传和增速反转交替运行。

硬件说明

硬件资源:

  • 串口UART1
  • RM、RN、RO、RP扩展接口(4路直流电机扩展接口)
  • 直流电机驱动器(需自备,可选专用X-CTR100-MDX2/4驱动器)
  • 直流电机(需自备)

硬件连接:

使用X-CTR100-MDX2 2路驱动器。

直流电源也可以使用3S锂电池代替。

除了专用配套电机驱动模块,也可以使用普通电机驱动模块,使用TB6612电机驱动连接示意图如下图所示。

软件生态

X-SOFT软件生态,X-API扩展文件如下。

ax_motor.c——X-CTR100 直流电机控制源文件

ax_motor.h——X-CTR100 直流电机控制头文件

接口函数

void AX_MOTOR_TIM1_MNOP_Init(uint8_t freq_khz); //电机MNOP接口初始化

void AX_MOTOR_TIM1_M_SetSpeed(int16_t speed); //电机M控制

void AX_MOTOR_TIM1_N_SetSpeed(int16_t speed); //电机N控制

void AX_MOTOR_TIM1_O_SetSpeed(int16_t speed); //电机O控制

void AX_MOTOR_TIM1_P_SetSpeed(int16_t speed); //电机P控制

软件说明

函数AX_MOTOR_TIM1_MNOP_Init()函数实现电机的初始化,包括左侧MNOP四路电机接口,并可设定PWM频率为20K,最大PWM频率100KHz。AX_MOTOR_TIM1_X_SetSpeed()可分别设置四路电机转速。本例程在while循环中实现了增速正转和增速反转交替运行,主程序代码如下。

int main(void)

{

    uint8_t temp; //工作模式

 

    //X-CTR100初始化

    AX_Init(115200);

    printf("***直流电机调速例程***\r\n\r\n");

 

    //模块初始化及配置

    AX_MOTOR_TIM1_MNOP_Init(20); //初始化电机控制端口,PWM频率为20KHz    

 

    //X-API测试:四路电机正反转调速测试    

    printf("*四个电机正反转调速测试\r\n");

 

    while (1)

    {

        printf("*电机正方向增速旋转\r\n");

        for (temp = 0; temp <= 200; temp++)

        {

            AX_MOTOR_TIM1_M_SetSpeed(temp);

            AX_MOTOR_TIM1_N_SetSpeed(temp);

            AX_MOTOR_TIM1_O_SetSpeed(temp);

            AX_MOTOR_TIM1_P_SetSpeed(temp);

            AX_Delayms(30);

        }

        AX_MOTOR_TIM1_M_SetSpeed(0);

        AX_MOTOR_TIM1_N_SetSpeed(0);

        AX_MOTOR_TIM1_O_SetSpeed(0);

        AX_MOTOR_TIM1_P_SetSpeed(0);

        AX_Delayms(1000);

 

        printf("*电机反方向增速旋转\r\n");

        for (temp = 0; temp <= 200; temp++)

        {

            AX_MOTOR_TIM1_M_SetSpeed(-temp);

            AX_MOTOR_TIM1_N_SetSpeed(-temp);

            AX_MOTOR_TIM1_O_SetSpeed(-temp);

            AX_MOTOR_TIM1_P_SetSpeed(-temp);

            AX_Delayms(30);

        }

        AX_MOTOR_TIM1_M_SetSpeed(0);

        AX_MOTOR_TIM1_N_SetSpeed(0);

        AX_MOTOR_TIM1_O_SetSpeed(0);

        AX_MOTOR_TIM1_P_SetSpeed(0);

        AX_Delayms(1000);

    }

}

实现效果

按照硬件连接说明连接好驱动和电机,电机可连接至四路控制接口中的任意一路,可以观察到电机做间隔的增速正转和反转。

玩转X-CTR100 l STM32F4 l TB6612直流电机调速控制的更多相关文章

  1. 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器控制步进电机 ...

  2. 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 AD转换接 ...

  3. 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 板载加速度 ...

  4. 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...

  5. 玩转X-CTR100 l STM32F4 l 舵机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...

  6. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器基础板载资源 ...

  7. 玩转X-CTR100 l STM32F4 l PS2无线手柄

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...

  8. 玩转X-CTR100 l STM32F4 l DSP指令集性能测试

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 DSP库的 ...

  9. 玩转X-CTR100 l STM32F4 l FPU单精度浮点性能测试

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器如何开启ST ...

随机推荐

  1. FJNUOJ Yehan’s hole(容斥求路径数 + 逆元)题解

    Description Yehan is a angry grumpy rabbit, who likes jumping into the hole. This day,Yehan jumps ag ...

  2. 【jdk源码分析】java.lang.Appendable

    1.概述 public interface Appendable 能够被添加 char 序列和值的对象.如果某个类的实例打算接收取自 Formatter 的格式化输出,那么该类必须实现 Appenda ...

  3. UVa 10340 子序列

    https://vjudge.net/problem/UVA-10340 题意: 输入两个字符串s和t,判断是否可以从t中删除0个或多个字符得到字符串s. 思路: 很水的题... #include&l ...

  4. iBatis的基本配置+CRUD操作

    首先解释一下CRUD的含义:CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Delete) 基本的数据库操作 创建工程iBati ...

  5. Codeforces Round #223 (Div. 2) E. Sereja and Brackets 线段树区间合并

    题目链接:http://codeforces.com/contest/381/problem/E  E. Sereja and Brackets time limit per test 1 secon ...

  6. python 集合交补

    setx = set(["apple", "mango"]) sety = set(["mango", "orange" ...

  7. python 删除列表中的字典元素

    data={"} ,{"}]} print("before:\n\n",data,"\n\n") temp=- k= for i in da ...

  8. 《Blue_Flke》 团队项目用户验收评审

    一.beta冲刺 beta冲刺第一.二天:https://www.cnblogs.com/ruanjgc/p/9226434.html beta冲刺第三天:https://www.cnblogs.co ...

  9. eclipse开发go语言入门案例

    1.配置eclipse下配置GO语言的插件 点击eclipse的“Help”菜单,找到“Install New Software…”菜单项.如下图: 点击“Install New Software…” ...

  10. Codeforces 838A - Binary Blocks(二维前缀和+容斥)

    838A - Binary Blocks 思路:求一下前缀和,然后就能很快算出每一小正方块中1的个数了,0的个数等于k*k减去1的个数,两个的最小值就是要加进答案的值. 代码: #include< ...