基于TB6612FNG和单片机的直流电机控制系统设计
扫描二维码
随时随地手机看文章
本设计中使用的TB6612FNG是一款新型驱动器件,能独立双向控制2个直流电机,它具有很高的集成度,同时能提供足够的输出能力,运行性能和能耗方面也具有优势,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。
1 TB6612FNG简介
TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机。
TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止;PWM支持频率高达100 kHz;待机状态;片内低压检测电路与热停机保护电路;工作温度:-20~85℃;SSOP24小型贴片封装。
如图1所示,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也具有较大优势。[!--empirenews.page--]
2 电机控制单元设计
2.1 单元硬件构成
图2所示为TB6612FNG与AVR单片机组成的电机控制单元。单片机定时器产生4路PWM输出作为AIN1/AIN2和BIN1/BIN2控制信号,如图2中OCxA、0CxB对电机M1和M2的控制。采用定时器输出硬件PWM脉冲,使得单片机CPU只在改变PWM占空比时参与运算,大大减轻了系统运算负担和PWM软件编程开销。输入引脚PWMA、PWMB和STBY由I/0电平控制电机运行或制动状态以及器件工作状态。电路采用耐压值25 V的10μF电解电容和0.1μF的电容进行电源滤波,使用功率MOSFET对VM和VCC提供电源反接保护。
2.2 电机控制的软件实现
脉宽调制方式产生占空比变化的PWM信号,通过对驱动器输出状态的快速切换,实现电机的速度控制。PWM占空比的大小决定输出电压平均值,进而决定电机的转速。文中采用单极性、定频调宽的PWM调制方式,保证电机调速控制的稳定性。TB6612FNG的逻辑真值表如表1所示。该器件工作时STBY引脚置为高电平;IN1和IN2不变,调整PWM引脚的输入信号可进行电机单向速度控制;置PWM引脚为高电平,并调整IN1和IN2的输入信号可进行电机双向速度控制。表中A、B两通道的控制逻辑相同。
单片机定时器PWM输出设置如图3所示。首先需设置T/C中断屏蔽寄存器TIMSKx使能定时器溢出中断。其次分别设置T/C控制寄存器TCC-RxA和TCCRxB选择PWM模式和预分频比,最后将控制信号引脚I/0置为输出。程序运行时,每当定时器计数产生溢出,CPU响应中断,定时器回零后重新开始计数。
以下列出的示例代码设置为快速PWM反向输出模式,当系统时钟记为fclk时,PWM输出频率fPWM=fclk/64/256。
TIMSKx |=1<
TCCRxA=OxF3;
TCCRxB=Ox03;
DDRx |=(1<
为获得更高的PWM波形精度,可以采用相位修正的PWM输出模式,不过在精度提高的同时,fPWM也将减半,以下代码得到fPWM=fclk/64/512。
TCCRxA=0xF1:
TCCRxB=0x03;
PWM占空比大小的改变通过对输出比较寄存器OCRxx的数值操作来实现,例如当OCRxx=203时,占空比为204/256=80%。编程时将速度变量值写入OCRxx寄存器,从而达到改变占空比和对电机调速的目的。
文中通过电位器调速试验来检测TB6612FNG的PWM控制与电机输出转速间的线性关系。单片机ADC对精密多圈电位器的电压值进行采样,用于控制电机转速。程序流程如图4所示。首先进行电机控制信号的初始化,接着通过设置ADC控制状态寄存器ADCSRA和ADC多路复用选择寄存器ADMUX选择ADC频率和通道,然后选取合适的样本数量,对ADC循环采样并计算样本均值作为当前速度值,代入速度函数。
试验中,随着电位器阻值的调整,TB6612FNG输出端电压测量值成比例变化,同时对电机实现启停和加减速控制,达到了预期试验效果,表明其输出和PWM输入之间具有良好的线性关系。
3 TB6612FNG在轮式移动机器人平台的应用
为研究差速驱动方式的运动学特性和机器人路径规划算法,开发了一个轮式移动机器人试验平台,在其中应用TB6612FNG对机器人的2个驱动电机进行控制。平台以单片机为控制核心,能实现零半径转向、轨迹跟踪、路径搜索等功能,并通过按键开关、液晶显示等单元进行操作和指示,是一个较为完整的小型机电运动控制系统。
如图5所示,系统硬件电路主要由电源、控制、传感、电机驱动、操作与指示等单元组成。系统采用电池组供电,通过稳压电路输出VM和VCC2路电压。稳压电路主要由开关型稳压器LM2576和三端稳压器7805构成,前者能提供输出电流最高3 A的VM,对电机驱动等单元供电,后者将电源稳压至VCC(+5 V),对单片机及其外嗣电路供电。
选用高性能低功耗的ATmega系列单片机作为控制核心,其运算速度高达1 MIPS/MHz,具有多路PWM和ADC,适用于小型机器人和电机控制系统的开发。单片机通过ADC或I/O连接传感器,同时定时器产生硬件PWM作为电机驱动控制信号。传感单元由光电和测距传感器等构成。移动机器人系统由按键开关和传感信号等组成前向通道,由PWM控制、TB6612FNG、电机及液晶等组成后向通道。
控制系统通过传感器获取机器人运行位置信息,利用单片机对其进行读取和计算,由数字PID方式得到控制信号并输出至驱动器件,实时调整电机转速。PID控制基本流程如图6所示,其中比例项P为读取位置与给定位置的偏差;积分项I为P值的累加;微分项D为相邻P值之差;Kp、Ki、Kd为PID参数。C为PID计算得到的调节控制量,B为设定的驱动电机基本转速,speedL和speedR分别为左右驱动电机的转速信号。系统启动后,循环执行流程,当运行位置发生偏离时,速度调节的计算结果由单片机输出,经AIN1/AIN2和BIN1/BIN2输入至TB6612FNG,对电机转速进行快速调整,实现机器人位姿的校正和位置偏差的纠正,直到终点标志或接收停止指令。
试验表明,在系统高速运行时,TB6612FNG对驱动电机的调速能够保持较好的连续性和平稳性。PID参数的设定对系统运行有很大影响,应根据运行控制要求,通过反复试验调整确定PID参数,选取Kp、Ki、Kd的最优组合以取得良好的控制效果。系统取消积分环节,采用PD控制时,也能够得到较好的运行结果。
4 运行性能和建议
1)器件输出状态在驱动/制动之间切换时,电机转速和PWM占空比之间能保持较好的线性关系,其运行控制效果好于器件在驱动/停止状态之间切换,所以表1中的INl/IN2一般不采用L/L控制组合。
2)fPWM较高时,电机运行连续平稳、噪音小,但器件功耗会随频率升高而增大;fPWM较低时,利于降低功耗,并能提高调速线性度,但过低的频率可能导致电机转动连贯性的降低。通常fPWM>1 kHz时,器件能够稳定的控制电机。
3)过大的PWM占空比会影响电机驱动电流的稳定性和器件的输出负载能力,应根据不同的速度要求合理设定占空比范围。
4)器件工作温度过高会导致其输出功率的下降,电路PCB设计中应保证足够面积的覆铜,这样有助于散热,利于器件长时间稳定工作。
5 结束语
利用TB6612FNG和单片机构成直流电机控制单元,并将其应用在差速驱动的轮式移动机器人系统中。试验运行表明,这款器件与单片机结合应用能够实现灵活稳定的电机驱动控制。TB6612FNG在集成性、运行性能和输出能力等方面达到了较好的平衡,适用于单、双直流电机数字控制系统的设计开发。