什么是H桥?H桥是一个比较简单的电路,通常它会包含四个独立控制的开关元器件(例如MOS-FET),它们通常用于驱动电流较大的负载,比如电机,至于为什么要叫H桥(H-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等。接上电源、电机,通过输入控制信号就可以驱动电机了;
这个模块有一个板载5V稳压器,该稳压器可使用跳线的方式进行使能。
如果电机电源电压高达12V,我们可以启用5V稳压器,并且5V引脚可以用作输出,例如给Arduino板供电。
但是,如果电动机电压大于12V,则必须断开跳线,因为这些电压会损坏板载5V稳压器。
在这种情况下,5V引脚将用作输入,因为我们需要将其连接到5V电源,以使IC正常工作。
我们在这里可以注意到,该IC的电压降约为2V。因此,如果使用12V电源,则电动机端子上的电压约为10V,这意味着我们将无法从12V直流电动机中获得最大速度。
#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的状态反置,从而改变电动机的旋转方向。该按钮将用作切换按钮,每次按下该按钮都会改变电动机的旋转方向。
总结本文简单介绍了H桥的原理,并以直流电机为例简单介绍了驱动的状态,整体比较简单,适合新手玩家,最后给出了基于Arduino和L298N的驱动示例,仅供参考。
简单描述一下:首先我们需要定义程序所需的引脚和变量。
在setup()中,我们需要设置引脚模式和电机的初始旋转方向。
在loop()中,我们先读取电位器值,然后将从中获得的值从0到1023变化,线性映射到PWM信号的0到255的值,将其从0到100%的占空比。
然后使用analogWrite()函数将PWM信号发送到L298N板的Enable引脚,该引脚实际上驱动电动机。
接下来,我们检查是否按下了按钮,如果是的话,我们将输入1和输入2的状态反置,从而改变电动机的旋转方向。该按钮将用作切换按钮,每次按下该按钮都会改变电动机的旋转方向。
总结本文简单介绍了H桥的原理,并以直流电机为例简单介绍了驱动的状态,整体比较简单,适合新手玩家,最后给出了基于Arduino和L298N的驱动示例,仅供参考。
编辑:jq
-
电路
+关注
关注
172文章
5837浏览量
171878 -
元器件
+关注
关注
112文章
4689浏览量
91947 -
稳压器
+关注
关注
24文章
4216浏览量
93598 -
直流电机
+关注
关注
36文章
1707浏览量
70065
原文标题:干货 | 深入浅出讲解H桥驱动电路
文章出处:【微信号:电子工程世界,微信公众号:电子工程世界】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论