资讯详情

H桥原理、驱动及应用

转自 | 小麦大叔

H桥是什么?

H桥是一个相对简单的电路,通常包括四个独立控制的开关元件(例如),它们通常用于驱动电流较大的负载,如电机。至于为什么叫H桥(H-Bridge),因为它看起来更像,如下图所示;

这里有四个开关元件Q1Q2Q3Q4,此外,还有一个直流电机M,D1D2D3D4是MOS-FET续流二极管;

开关状态

下面以控制一个直流电机为例,对H桥的几种开关状态进行简单的介绍,其中正转和反转是人为规定的方向,实际工程中按照实际情况进行划分即可;

正转

H桥通常用于驱动感性负载,这里我们驱动直流电机;

  • 打开Q1Q4

  • 关闭Q2Q3

此时假设电机正转,电流依次通过Q1MQ4,图中标注黄色线段,如下图所示;

正转

反转

另一种状态是电机反转;此时,四个开关元件的状态如下;

  • 关闭Q1Q4

  • 打开Q2Q3

此时,电机反转(与上述情况相反),电流依次通过Q2MQ3,图中标注黄色线段,如下图所示;

反转

调速

如果要对直流电机调速,其中的一种方案就是;

  • 关闭Q2Q3

  • 打开Q1Q4上给它输入50%占空比的PWM波形达到降低速度的效果。如果需要增加速度,则输入PWM占空比设定为100%;

如下所示;

停止状态

以电机从正转切换到停止状态为例;

  • 正转;Q1Q4是开放状态;

  • 如果此时关闭Q1Q4,可在直流电机内部使用,那么电流将继续保持原来的方向进行流动,这时候我们希望电机里的电流可以快速衰减;

这里有两种方法:

第一:关闭Q1Q4,此时,电流仍将通过反向续流二极管流动Q1Q3从而达到快速衰减电流的目的;

第二:准备停止时,关闭Q1,打开Q2,此时,电流不会迅速衰减,电流会循环Q2,M,Q四之间流动,通过MOS-FET内阻消耗电能;

应用

实际使用时,用分立元件制作H桥非常麻烦。市场上有很多常用的IC比如常用的方案L293D、L298N、TA7257P、SN75410等。连接电源和电机,输入控制信号驱动电机;

下面是某宝L298N模块,比较常见,对新手玩家很友好,接线也很简单;

L298N模块

该模块有一个板载5V稳压器,可以通过跳线使用。

如果电机电源电压高达12V,我们可以用5V而且5V引脚可用作输出,例如给Arduino板供电。

但如果电机电压大于12,V,跳线必须断开,因为这些电压会损坏板载5V稳压器。

在这种情况下,5V引脚将被用作输入,因为我们需要连接到5V电源,以使IC正常工作。

我们可以在这里注意到,应该IC电压降约为2V。因此,如果使用12V电源,电机端子上的电压约为10V,这意味着我们将无法从12开始V在直流电机中获得最大速度。

这里使用Arduino例如,这是一个在网上找到的例子Demo如下图所示;

架构
#defineenA9 #definein16 #definein27 #definebutton4  introtDirection=0; intpressed=false;  voidsetup(){ pinMode(enA,OUTPUT); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(button,INPUT); //Setinitialrotationdirection digitalWrite(in1,LOW); digitalWrite(in2,HIGH); }  voidloop(){ //Readpotentiometervalue intpotValue=analogRead(A0); //Mapthepotentiometervaluefrom0to255 intpwmOutput=map(potValue,0,1023,0,255); //SendPWMsignaltoL298NEnablepin analogWrite(enA,pwmOutput);  //Readbutton-Debounce if(digitalRead(button)==true){ pressed=!pressed; } while(digitalRead(button)==true); delay(20);  //Ifbuttonispressed-changerotationdirection if(pressed==true&rotDirection==0){ digitalWrite(in1,HIGH); digitalWrite(in2,LOW); rotDirection=1; delay(20); } //Ifbuttonispressed-changerotationdirection if(pressed==false&rotDirection==1){ digitalWrite(in1,LOW); digitalWrite(in2,HIGH); rotDirection=0; delay(20); } }  
   

简单描述一下:首先我们需要定义程序所需的引脚和变量。

setup()中,我们需要设置引脚模式和电机的初始旋转方向。

loop()中,我们先读取电位器值,然后将从中获得的值从0到1023变化,线性映射到PWM信号的0到255的值,将其从0到100%的占空比。

然后使用analogWrite()函数将PWM信号发送到L298N板的Enable引脚,该引脚实际上驱动电动机。

接下来,我们检查是否按下了按钮,如果是的话,我们将输入1和输入2的状态反置,从而改变电动机的旋转方向。该按钮将用作切换按钮,每次按下该按钮都会改变电动机的旋转方向。

某宝上这种小车很多,如下图所示;主控可以换成51单片机或者STM32,当然Arduino也没问题,使用L298N就可以快速搭建一个小车了;

某宝的小车

总结

本文简单介绍了H桥的原理,并以直流电机为例简单介绍了驱动的状态,整体比较简单,适合新手玩家,最后给出了基于Arduino和L298N的驱动示例,仅供参考,感兴趣可以去某宝逛逛,enjoy。

由于作者能力和水平有限,文中难免存在错误和纰漏,请不吝赐教。

本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------  ------------

后台回复『』『』阅读更多相关文章。

回复“”按规则加入技术交流群,回复“”查看更多内容。

点击“”查看更多分享,欢迎

标签: h连接器端子

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台