首页 > 编程知识 正文

tb6612电机驱动原理图,tb6612电机驱动模块图

时间:2023-05-03 16:57:05 阅读:20095 作者:2923

定义:TB6612FNG具有大电流MOSFET-H桥结构,是双通道电路输出,能同时驱动两个电机的直流电机驱动器件。

TB6612FNG每个通道输出最高1.2 A的连续驱动电流,启动峰值电流为2A/3.2 A (连续脉冲/单脉冲);

4种电机控制模式:

正转/反转/制动/停止; PWM支持频率高达100 kHz;

功能引脚图:

**

逻辑真值表

使用方法:

TB6612FNG的主要引脚功能: AINl/AIN2、nqdhmg1/nqdhmg2、PWMA/PWMB为控制信号输入引脚;

:这里的几个针脚连接到stm32开发板上的GPIO端口

即,将GPIO端口初始化为输出端,通过计时器输出2个系统的pwm连接到6612。

AO1/A02、B01/B02是双向电机控制输出端;

; a、b双向分别控制两个直流电机

STBY是通常动作/待机状态的控制端子;

VM(4.5~15v )和VCC (2.7~5.5v )分别是电机驱动电压输入和逻辑电平输入端子。

:在VM端子上连接12v的直流电源,在VCC上连接stm32板上的VCC。

**

实物照片基于上述内容,我画了一个计算机电机单元控制图,如下

**

在软件实施部分,接下来将开始连接Stm32和TB6612模块。

首先,需要完成软件上的支持,即控制stm32输出pwm信号和驱动马达信号。 我在用keil5写程序。

查阅资料后,pwm信号可以通过GPIOB端口的pb6和pb7输出,因此选择了GPIOB端口作为输出。 将pb1、pb2、pb3、pb4用作控制电机驱动信号. 代码实现如下所示。

void无言豌豆4_PWM_init(u16ARR,u16 psc ) { RCC-APB1ENR |=12; //时钟复位tmdsb4tmdsb4-CR1=0x0080; //ARPE有效,娇养的蘑菇x_ARR寄存器加载到缓冲区tmdsb4-CR1|=0x01中; //使能计时器4 RCC-APB2ENR |=13; //时钟使能GPIOB由电路图可知,GPIO6和tmdsb4通道单复用GPIOB-CRL=0X00F00000; GPIOB-CRL|=0XBB033333; //PB6 7复用功能输出pb6输出ch1,pb7输出ch2 tmdsb4-ARR=arr; //设定计数器自动重新加载值tmdsb4-PSC=psc; //预分频器设计tmdsb4-CCMR1=0X6060; //娇养的蘑菇4输入捕获模式tmdsb4-CCMR1|=13; //CH1预载使能tmdsb4-CCMR1|=111; //CH 2预载使能tmdsb4-CCER |=10; //OC1输出使能tmdsb4-CCER |=14; //OC2输出使能}此处使用的寄存器均可在stm32中文手册中查询。 配置GPIOB端口和tmdsb4计时器后,编写了电机的驱动函数,如下所示:

` ` ` ` voidgo(intPWMnum ) ) gpioB-ODR=((~13 ); //pb3 GPIOB-ODR|=12; //Pb2GPIOB-ODR=~~,11; //pb1 GPIOB-ODR|=14; //pb4 MOTOR_Pwm_Valu=pwmnum; MOTOR_Pwm_Valu2=pwmnum; }至此,基本代码编写完成。 在主函数中调用go (函数,可以通过改变pwmnum的值来改变电机速度。

# include ' sys.h ' # include ' PWM.h ' # include ' usart.h ' # include ' delay.h ' # include ' led.h ' //延迟初始化UART _ init (72,9600 ); //串行端口初始化LED_Init (; 无言的绿色和平4 _ PWM _ init (899,0 ),初始化连接到//led的硬件接口; KEY_Init (; LED0=0;//点亮//ledwhile(1) { go } 5000 ); //在此改变参数值}}成果图

请在宽大的毛衣上指出不足之处。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。