什么是H桥?
H桥是一个相对简单的电路。它通常包含四个独立控制的开关元件(如MOS-FET)。它们通常用于驱动电流较大的负载,例如电机。至于为什么叫H桥(H-bridge-Bridge),因为它看起来更像字母H,如下图所示;
有四个开关元件Q1、Q2、Q3、Q4和直流电机M。D1、D2、D3、D4为MOS-FET续流二极管;
开关状态
下面以直流电机的控制为例,简单介绍一下H桥的几种开关状态。正转和反转是人为规定的方向。实际项目中可以根据实际情况进行划分;
向前
通常H桥用于驱动感性负载,这里我们驱动直流电机;
打开Q1和Q4;
关闭Q2、Q3;
此时,假设电机正向旋转,电流依次经过Q1、M、Q4,图中黄色线段标注,如下图所示;
另一种状态是电机反转时;此时,四个开关元件的状态如下:
关闭Q1、Q4;
打开Q2和Q3;
此时电机反转(与之前介绍的情况相反),电流依次经过Q2、M、Q3,图中用黄色线段标出,如下图所示;
撤销
调速
如果你想调节直流电机的速度,解决方案之一是;
关闭Q2、Q3;
打开Q1,向Q4 输入占空比为50%的PWM 波形,从而达到降速的效果。如果需要提高速度,请将输入PWM的占空比设置为100%;
详情如下;
停止状态
这里以电机从正转切换到停止状态为例;
正转时; Q1和Q4开路;
如果此时Q1、Q4 关断,则直流电机内部可相当于一个电感,即感性负载。电流不会突然改变,电流会继续沿原来的方向流动。这时,我们希望电机中的电流能够快速衰减。
这里有两种方法:
第一个:关闭Q1和Q4。此时,电流仍会流过反向续流二极管。此时Q1、Q3会短暂导通,达到快速衰减电流的目的;
第二种:准备停车时,关闭Q1,开启Q2。此时电流不会衰减得很快。电流在Q2、M、Q4之间循环,通过MOS-FET的内阻消耗电能;
应用
在实际使用中,用分立元件制作H桥是非常麻烦的。市场上常用的IC方案有很多,比如常用的L293D、L298N、TA7257P、SN754410等。连接电源和电机,然后输入控制信号来驱动电机;
下面是某宝上的L298N模块,比较常见,对新手玩家很友好,接线也很简单;
L298N模块
该模块具有一个板载5V 稳压器,可以使用跳线启用。
如果电机供电电压高达12V,我们可以启用5V稳压器,并且5V引脚可以用作输出,例如为Arduino板供电。
但是,如果电机电压大于12V,则必须断开跳线,因为这些电压可能会损坏板载5V 稳压器。
在这种情况下,5V 引脚将用作输入,因为我们需要将其连接到5V 电源以使IC 正常工作。
我们可以注意到,该IC的压降约为2V。因此,如果我们使用12V 电源,电机端子上的电压将在10V 左右,这意味着我们将无法从12V 直流电机获得最大速度。
这里我们以Arduino为例。这是网上找到的一个Demo。整体框架如下图所示;
建筑学
#定义enA 9
#定义在1 6
#定义在2 7
#定义按钮4
int rotDirection=0;
int 按下=false;
无效设置(){
pinMode(enA, 输出);
引脚模式(输入1,输出);
pinMode(输入2,输出);
pinMode(按钮,输入);
//设置初始旋转方向
digitalWrite(in1, 低);
digitalWrite(in2, 高);
}
无效循环(){
//读取电位器值
int potValue=AnalogRead(A0);
//将电位计值从0 映射到255
int pwmOutput=地图(potValue, 0, 1023, 0, 255);
//发送PWM 信号到L298N 使能引脚
AnalogWrite(enA, pwmOutput);
//读取按钮- 去抖
if (digitalRead(button)==true) {
按下=!按下;
}
while (digitalRead(button)==true);
延迟(20);
//如果按下按钮- 改变旋转方向
if (pressed==true rotDirection==0) {
digitalWrite(in1, 高);
digitalWrite(in2, 低);
旋转方向=1;
延迟(20);
}
//如果按下按钮- 改变旋转方向
if (pressed==false rotDirection==1) {
digitalWrite(in1, 低);
digitalWrite(in2, 高);
旋转方向=0;
延迟(20);
}
}
简单说明:首先我们需要定义程序所需的引脚和变量。
在setup()中,我们需要设置引脚模式和电机的初始旋转方向。
在loop()中,我们首先读取电位器的值,然后将从0到1023获得的值线性映射到PWM信号的0到255的值,占空比从0到100%。
然后使用analogWrite()函数将PWM信号发送到L298N板的Enable引脚,该引脚实际上驱动电机。
接下来,我们检查按钮是否被按下,如果是,则反转输入1 和输入2 的状态,从而改变电机的旋转方向。该按钮将充当切换按钮,每次按下时都会改变电机的旋转方向。
傲宝上有很多这样的车,如下图;主控可用51单片机或STM32代替。当然,Arduino没问题。使用L298N可以快速打造一辆汽车;
某辆车
总结
本文简单介绍了H桥的原理,并以直流电机为例简单介绍了驱动器的现状。整体比较简单,适合新手玩家。最后给出一个基于Arduino和L298N的驱动示例,仅供参考。
编辑:hfy