1.H桥梁驱动电路的基本工作原理 2.典型H桥驱动电路分析 3.DRV介绍833双H桥电机驱动模块 4.Pico开发板与直流电机接口 1.DRV8833模块电机驱动PWM电机调速控制真值表 2.Pico开发板GPIO扩展口PWM电机调速控制MicroPython编程实现
由于直流电机的驱动电流较大(通常超过几百mA),大大超出了Pico等待嵌入式开发板GPIO单根口线可以直接驱动接口的最大数十条mA所以必须有电流GPIO在接口和电机控制对象之间增加驱动电路。我们可以使用三极管或三极管MOSFET管道等分离电子元件自行设计电机驱动电路,也可购买现成的驱动电路模块。H桥常用于实际应用场景(H Bridge)驱动驱动电路驱动直流电机。 H 桥式驱动电路是为直流电机设计的常用电路,主要实现直流电机的正反向驱动,其简化电路原理见图1所示。 图1 从图1可以看出,它的形状像字母H而作为负载的直流电机像桥一样架在上面,因此被称为 H 桥驱动”。4个开关所在位置称为“桥臂”。 H桥式电机驱动的基本原理:设置开关 A、D开关时,电机正向旋转;B、C直流电机将反向旋转。从而实现电机的正反向驱动。 借助这 4 个开关还可以产生电机 2 工作状态:(1)刹车-B 、D开关(或A、C)连接时,电机惯性旋转产生的电势会短路,形成阻碍运动的反电势,形成制动功能;(2)惰行— 如果四个开关全部断开,电机惯性产生的电势将无法形成电路,因此不会产生阻碍运动的反电势,电机长时间旋转惯性。 原则上,图1所示的H桥驱动电路,实际的H桥驱动电路四个开关必须采用三极管,MOSFET如图2所示, 图2 首先讨论H桥电路的分析 H 桥梁性能指标: (1)效率:所谓的高驱动效率是将输入的能量将输入的能量输出到负载中,而驱动电路本身最好不要或少消耗能量。具体来说,在H桥上,四个桥臂在导通时最好不要压降,或者越小越好。 (3)安全性:桥臂不能同时导通PWM电机控制采用带死区的电机控制PWM (或使用逻辑电路)控制可以保证这一点; (3)电压:能承受的驱动电压; (4)电流:可通过的驱动电流。 可以看出,指标(2)不是H桥本身的问题,而是控制部分需要考虑的问题。最后两个指标可以通过选择合适参数的设备来满足,如智能汽车控制。 只有指标(1)由不同设备的性能决定,是运行中最重要的性能指标,因为它直接影响电机驱动的效率。因此,分析的重点应该是效率,即桥臂的压降。 设置为了使分析简单易比,H 桥的驱动电流为2A ,电压在 5~12V。H桥和三极管MOSFET管H桥设备的选择如下: (1)双极性晶体管-D772、D882 D772的压降指标 : D882压降指标: (2)MOS管-2301、2302 压降指标2301: 因为MOS管道由导电阻测量,必须在这里转换;在实际应用中,智能汽车通常由电池供电,汽车的控制电压为4.5V根据上表给出的导电阻参数,驱动电流2A最小压降为2* 0.093 V= 0.186V,最大压降为2 * 0.13 V= 0.26V。 压降指标2302: 如果智能汽车的控制电压是4.5V,根据上表给出的导通电阻参数,2A驱动电流时的压降为2* 0.045 V=0.09V,最大压降为2 * 0.06 = 0.12V。 如果均以2A电流驱动计算,两种H驱动本身消耗的功率如下: 三极管H桥: D772、D882 –(0.5V 0.5V)*2A = 2 W MOS管H桥:2301、2302-- (0.26V 0.12V)2 A= 0.76 W 以驱动一个 4.5V 、2A 例如,直流电机的功率是 4.5V 2A= 9W;采用三极管 D772、D882 需要5.5V供电,效率为 9/(5.52)= 81% ;采用 MOS管2301、2302 需要4.88V供电效率为9/(4).882)= 92%。 从这组数据可以看出两者的散热需求。同时也可以解释智能小车使用三极管 D772、D为什么选择382作为H桥驱动?V这是因为智能汽车是4节1.2V充电电池供电,电源电压只有4.8~5V,H桥三极管压降为1V,所以只能用3V的电机;而改用MOS管H桥驱动后, MOS 管H桥不到0.4V所以可以选择4.5V的电机。 要使电机运转,对角线上的一对三极管必须导通。见图3所示,当Q1管和Q当4管导通时,电流从电源正极开始Q1从左到右穿过电机(或线圈),然后通过Q回到电源负极。如图所示,流向的电流将驱动电机顺时针旋转。当三极管Q1和Q电流从左到右流过电机,驱动电机向特定方向旋转(电机周围的箭头指示顺时针方向)。 图3 图4显示了另一对三极管Q2和Q电流从右到左流过电机。当三极管Q2和Q电流从右到左流过电机,驱动电机沿另一个方向旋转(电机周围的箭头表示逆时针)。 图4 需要强调说明的是,尽管我们理论上可以使用2个NMOSFET和2个PMOSFET建造H桥电路,但在实际应用中一般使用4个N型MOSFETH桥电路的管道建设。大部分不使用2个的原因NMOS管 2个PMOS建造H桥电路的主要原因是:一是现有型号PMOS管道难以达到高耐压大电流,导电阻大;二是性能相同MOS管,NMOS管比PMOS更加便宜。 对于NMOS,外部给出的栅源极Vgs电压大于芯片Vgs阈值(大部分在2V~10V之间),漏极D和源极S直接导通。如果添加到外部Vgs泄漏D和源极S之间的电压小于阈值。简单地说,事实上,NMOS它是一个由栅极G电压控制的开关。图5是我们自己设计的电机驱动电路的参考NMOS型号。 图5 在实际的电机驱动应用中,使用分立元件设计和制造H桥更麻烦。目前,市场上有许多包装好的H桥集成电路电机驱动模块,只能在额定电压和电流允许的范围内连接电源、电机和控制信号。常见的直流电机驱动模块有ULN2003(达林顿三极管阵列驱动)L298N(双H桥驱动),TB6612(双H桥驱动),DRV8833(双H桥驱动)等。其中,DRV8833是TI公司生产的双通道H桥电机驱动芯片(可完全替代)TB6612)采用该芯片设计的典型直流电机驱动电路原理图见图6所示。 图6 以DRV基于8833芯片,许多电子制造商推出了相应的芯片DRV8833驱动模块解决方案DRV8833驱动模块Pico该模块将驱动开发板与直流电机的接口。 图7 如图7所示DRV8833双H桥直流电机驱动模块如下: 1)VM: 电源 (2.7V~10.8V); 2)GND: 地; 3)AIN1: 电机A H桥输入1; 4)AIN2: 电机A H桥输入2; 5)BIN1: 电机B H桥输入1; 6)BIN2: 电机B H桥输入2; 7)FLT: 故障输出; 8) AOUT1: 电机A H桥输出1; 9) AOUT2: 电机A H桥输出2; 10) BOUT1: 电机B H桥输出1; 11) BOUT2: 电机B H桥输出2; 12)AS1: 桥接地(用于桥A,可连接到电流检测电阻;如果不需要电流控制,可以连接到GND); 13)AS2: 桥B接地; 14)SLP: 睡眠模式输入,SLP=1(如果嵌入式开发板GPIO口是LV TTL逻辑,SLP可接到 5V电源或3.3V电源,则SLP=1) 时,H桥驱动电机工作;SLP悬空或接GND时,H桥不能驱动电机工作。 DVR8833有两个H桥驱动器,可以用来驱动两个DC电刷电机、双极步进电机也可用于驱动其它感性负载。DVR每个H桥输出驱动模块由4个N通道组成MOSFET组成,这些MOSFET被配成一个H桥,以驱动电机绕组。每个H桥可连续提供1.5A的电流(在25°且供电电源电压VM=5V时),能支持高达2A的峰值电流。 DVR8833电机驱动模块主要参数:电机电压范围2.7V~10.8V(即VM电源电压范围),峰值电流2A,MOSFET导通电阻360mΩ(因全部采用NMOS,导通电阻低)。 再补充说明一点,如果遇到的实际问题是使用大功率电机的话,则可改用DRV8302大功率电机驱动模块,DRV8302驱动模块主要参数:电机电压范围5.5V~45V,峰值电流15A。 DVR8833可以接两个小型直流电机,本文Pico开发板与一个直流电机接口原理图见图8所示。 图8 对应于图8的Pico开发板与直流电机接口原理图, 图9是通过面包板接线的Pico开发板与直流电机接口拍照实物图。这里使用了配风扇叶片、电机型号为R300C的微型直流电机,该电机主要参数:电源电压1.5V~6V,3V电压3500转,6V电压7000转。 图9 对应于图8的Pico开发板与直流电机接口原理图, 图9是通过面包板接线的Pico开发板与直流电机接口拍照实物图。这里使用了配风叶片、电机型号为R300C微型直流电机,该电机的主要参数:电源电压1.5V~6V,3V电压3500转,6V电压7000转。
表1 DRV8833模块H桥驱动控制真值表 表2 DRV8833模块PWM控制电机转速真值表 MicroPython编程实现1:Pico开发板GPIO扩展口的GP14和GP15控制直流电机正反转,程序清单如下:
from machine import Pin
import utime
HBridge_AIN1 = Pin(14, Pin.OUT)
HBridge_AIN2 = Pin(15, Pin.OUT)
#控制电机正转函数定义
def motor_forward():
HBridge_AIN1.high()
HBridge_AIN2.low()
#控制电机反转函数定义
def motor_reverse():
HBridge_AIN1.low()
HBridge_AIN2.high()
#控制电机停转函数定义
def motor_stop():
HBridge_AIN1.low()
HBridge_AIN2.low()
def test():
motor_forward()
utime.sleep(2)
motor_reverse()
utime.sleep(2)
motor_stop()
test() #测试电机的正反转 (Pass)
结合本程序对应的图8和图9硬件接口及表1的真值表分析可知:本程序运行后,电机将依次正转2秒、反转2秒,最后停转(驱动模块H桥的AOUT1和AOUT2输出为高阻,电机惯性运行停转)。 MicroPython编程实现2:将Pico开发板GPIO扩展口的GP14设置为PWM输出口,GP15设置为输出口,并用不同占空比的PWM信号控制直流电机正反转调速,程序清单如下:
#Filename: main.py
from machine import Pin, PWM
import utime
#使用Pico扩展口物理引脚号19(GPIO14),构建PWM对象PWM_HBridge_AIN1
PWM_HBridge_AIN1=PWM(Pin(14))
HBridge_AIN2 = Pin(15, Pin.OUT)
#设置PWM_HBridge_AIN1频率
PWM_HBridge_AIN1.freq(500)
#设置占空比PWM_PulseWidth[i]/65535(i=0~4):100%,75%,50%,25%,0%
PWM_PulseWidth= [65535,49151,32767,16383,0]
#定义电机正转函数:以设定的5个占空比,电机速度分成5挡每2秒由快到慢正转,最后1挡停转
def motor_forward():
HBridge_AIN2.low()
for i in range(len(PWM_PulseWidth)):
PWM_HBridge_AIN1.duty_u16(PWM_PulseWidth[i]) #电机按设置的占空比正转
utime.sleep(2)
#定义电机反转函数:以设定的5个占空比,电机速度分成5挡每2秒由快到慢反转,最后1挡停转
def motor_reverse():
HBridge_AIN2.high()
for i in range(len(PWM_PulseWidth)-1,-1,-1):
PWM_HBridge_AIN1.duty_u16(PWM_PulseWidth[i]) #电机按设置的占空比反转
utime.sleep(2)
def test():
motor_forward()
motor_reverse()
test() #测试电机的PWM调速正反转 (Pass)
结合参考文献[1]中的PWM技术及MicroPython树莓派Pico实现、本程序对应的图8和图9硬件接口、表2的PWM电机调速真值表和程序注释不难看出:本程序执运行后,电机将先按5挡从快到慢的不同的速度(100%,75%,50%,25%,0%)各正转2秒,然后再按5挡从快到慢的不同速度(100%,75%,50%,25%,0%)各反转2秒;当电机快速转动时,将同步带动风扇叶片快速旋转[图10(c )]。 图10 [1]博主CSDN博文.运用PWM技术及MicroPython实现树莓派Pico板上LED呼吸灯视觉效果.
发布日期:2021年07月08日