首页 > 范文大全 > 正文

基于Arduino的四轮小车研究与应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Arduino的四轮小车研究与应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

电动小车的驱动系统一般由控制器、功率变换器及电动机三个主要部分组成。电动小车的驱动不但要求电机驱动系统具有高转矩重量比、宽调速范围和高可靠性;而且,因为电机的转矩转速特性受电源功率的影响,这就要求驱动具有尽可能宽的高效率区。目前,大电流正反转控制多采用达林顿管或MOS管搭制H桥PWM脉宽调制,因体积较大和分立器件的参数特性不同,使得驱动器的特性具有一定的离散性;此外,由于功率管的开关电阻比较大,因此功耗也很大,鉴于此,我们采用集成大功率MOS管H桥驱动芯片的方法来实现正反向大功率控制。在使用开源硬件平台Arduino的基础上,开发了基于全桥驱动芯片VNH3SP30的控制子板。这种驱动电路可以很方便地实现直流电机的四象限运行。

H桥控制系统

H桥示意图如图一所示,其形状类似于字母“H”,作为负载的直流电机就是架在上面的“桥”,故名“H桥驱动”。4个开关所在位置就称为“桥臂”。开关A、D接通,电机为正向转动,开关B、C接通时,直电机将反向转动。

VNH3SP30是意法半导体公司生产的专用于电机驱动的大电流功率集成芯片,内部框图如图2所示。芯片核心是一个双单片上桥臂驱动器(HSD)和2个下桥臂开关,HSD开关的设计采用ST的ViPowe技术,允许在一个芯片内集成一个功率场效应MOS管和智能信号/保护电路。下桥臂开关是采用ST专有的EHD(STripFET)工艺制造的纵向场效应MOS管。3个模块叠装在一个表面组装MultiPowerS0-30引脚框架电绝缘封装内,通过引脚DIAGA/ENA或DIAGB/ENB和外部上拉电阻器,可以导通一路桥臂,同时提供数字反馈诊断信号。PWM的控制频率可达lOkH,LSA和LSB开关可根据PWM占空比进行开关。具体性能指标如下:

大电流30A、电源电压高达40V

功率MOS管导通电阻0.034Q

5V兼容的逻辑电平控制信号输入

含欠压、过压保护电路

芯片过热报警输出和自动关断

PWM参数研究

通过H桥电路,可以实现电机的正、反转及惰行、刹车控制,但要改变电机的转速,还需要使用PWM控制以改变供给电机的功率。简单的PWM就是通过改变通、断时间比改变电机的速度。理论上,电机得到的能量只和通、断时间比(占空比)有关,但由于电机电枢的电感特性,导致电机获得的能量和PWM的频率有关。

在RL串联电路中,其电流的阶跃响应为:

式中时间常数:τ=L/R。

按电流公式分析可知:经过一个τ,电流可达最大电流的63%,2个τ,电流能到86%,3个τ,电流才能到95%。也就是说要想达到最大电流,PWM的导通时间至少要大干3个τ。假设占空比的调节范围为20%~100%,基于控制系统的响应时间应远小于PWM周期的基础上,PWM周期至少要15个τ。从上述分析看,电机PWM直接取决干电机绕组的电感和电阻。对于四驱车通用的130电机,时间常数约为0.3ms。采用堵转方式实测该电机的时间常数,结果如下:

从测量结果看,与电感、电阻值所计算出的值基本一致。因此,PWM周期至少为4.5ms,即频率为222Hz。

arduino控制器

Arduino UNO是Arduino USB接口系列控制器,作为Arduino平台的参考标准模板,UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。

系统实现

1 机械部分

控制小车采用田宫(Tamiya)的组件搭建,总共使用了四个组件如图5所示。

2 电路部分

由于电机在正常工作时对电源的干扰很大,如果只用一组电源时会影响单片机的正常工作,所以我们选用双电源供电。一组5V给单片机和控制电路供电,另外一组12V给电机供电。逻辑输入引脚连接到用来向H桥输出控制信号的微控制器上的引脚,而电源输出引脚则连接到电机上。我们采用Arduino的外部供电方式,并使用变压器或者电源为Arduino提供电力。电路板及原理图如图6和图7所示。

使用这一扩展板我们能够控制直流电机的转动方向和转动速度,其中对转动方向的控制是通过Arduino上的数字I/O引脚8,9,12和13来实现的,对转速的控制则是通过数字I/O引脚10和11来实现的。

如果要控制直流电机1,我们需要向引脚10输出相应的PWM信号来控制电机的速度,同时设置引脚8和9的高低电压来控制电机的方向。如果要控制直流电机2,则需要向引脚11输出相应的PWM信号来控制电机的速度,此时也是通过设置引脚12和13的高低电压来控制电机的方向的。

3 测试小车的程序代码

#define 11NA 8//电机一方向控制

#define 11NB 9//电机一方向控制

#define lPWM 10//电机一PWM控制

#define 2PWM 11//电机二PWM控制

#define 21NB 12//电机二方向控制

#define 21NA 13//电机二方向控制

//引脚定义

void setup(){

pinMode(lINA, OUTPUT);

pinMode(lINB, OUTPUT);

pinMode(lPWM, OUTPUT);

pinMode(2PWM, OUTPUT);

pinMode(21NB, OUTPUT);

pinMode(21NA, OUTPUT);

delay(20);

}

//正转

void forward().:

digitalWrite(lINA, LOW);

digitalWrite(lINB, HIGH);

digitalWrite(21NA, LOW);

digitalWrite(21NB, HIGH);

//反转

void backward(){

digitalWrite(lINA, HIGH);

digitaIWrite(lINB, LOW);

digitalWrite(21NA, HIGH);

digitalWrite(21NB, LOW) ; ’

}

//停止

void stopMotors ){

digitalWrite(lINA, LOW);

digitalWrite(lINB, LOW);

digitalWrite(21NA, LOW);

digitalWrite(21NB, LOW);

digitaIWrite(lPWM, 0);

digitalWrite(2PWM, 0);

//循环主程

void loop(){

stopMotors() ;

delay(200) ;

forward() ;

digital. Write(lPWM, 100) ;

digital. Write(2PWM, 300) ;

delay(800) ;

stopMotors() ;

delay(500) ;

backward() ;

digital. Write(1PWM,150) ;

digital.Write(2PWM,250);

delay(800) ;

结论

本文主要介绍了基于开源平台Ard uino的大电流电机驱动系统。该系统采用集成全桥式驱动电路,该电路有效率高,电路简单,驱动方法检单,使用较广的特点。实验证明,基于VNH3SP30组件的大电流直流电机驱动器得到了很好的应用,该驱动器由于采用了大电流功率集成电路,使得电路结构简单、体积小、驱动能力大,保护功能全,同时,大大地提高了可靠性。可广泛应用于40V以下的大功率直流电机驱动场合。