玩转X-CTR100 l STM32F4 l TB6612直流电机调速控制

我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 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直流电机调速控制的更多相关文章
- 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机 ...
- 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 AD转换接 ...
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- 玩转X-CTR100 l STM32F4 l DSP指令集性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的 ...
- 玩转X-CTR100 l STM32F4 l FPU单精度浮点性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器如何开启ST ...
随机推荐
- C#学习笔记(一):C#简介
计算机语言计算机语言是指用于人与计算机之间通讯的语言机器码——汇编语言——高级语言(面向过程(线性).面向对象(类).面向组件(Unity)) 一.计算机语言发展趋势1.简单:代码生成逻辑2.面向人类 ...
- C#中的DllImport使用方法
DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息 DllImport属性应用于方法,要求最少要 ...
- Mybatis配置映射文件中parameterType的用法小结
原创: 在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配 ...
- BZOJ 1001: [BeiJing2006]狼抓兔子(s-t平面图+最短路求最小割)
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 题意: 思路:这道题目是最小割题目,但是吧你直接套用Dinic是会超时的. 这里有种很奇妙的做 ...
- ajax专题
什么是ajax?他可以用来做什么? 1.首先,ajax不是一种编程语言,是一种在无需重新加载整个网页的情况下能够更新部分网页的技术. 优点:通过和后台服务器进行少量的数据交换,网页就能异步的局部跟新, ...
- Java中的垃圾回收机制
1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象:而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾.JVM的 ...
- hdu 2824 The Euler function 欧拉函数打表
The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 《剑指offer》第十八题(删除链表中重复的结点)
// 面试题18(二):删除链表中重复的结点 // 题目:在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复 // 结点被删除之后,链表如图3.4(b)所示. #include &l ...
- Spring AMQP 源码分析 01 - Impatient
### 准备 ## 目标 了解 Spring AMQP 核心代码 ## 前置知识 RabbitMQ 入门 ## 相关资源 Quick Tour for the impatient:&l ...
- 算法笔记--字符串hash
概述: 主要用于字符串的匹配. 定义hash函数: H(c)=(c1bm-1 +c2bm-2 +...+cmb0)mod h 对于字符串c中l-r区间的hash值: H(l,r)=H(1,r)-H(1 ...