什么是h桥?
h桥是一个比较简单的电路,通常它会包含四个独立控制的开关元器件(例如 mosfet),它们通常用于驱动电流较大的负载,比如电机,至于为什么要叫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的内阻将电能消耗掉;
应用
下面是某宝上的l298n模块,比较常见,对于新手玩家非常友好,接线也十分简单;
l298n模块
这个模块有一个板载5v稳压器,该稳压器可使用跳线的方式进行使能。
如果电机电源电压高达12v,我们可以启用5v稳压器,并且5v引脚可以用作输出,例如给arduino板供电。
但是,如果电动机电压大于12v,则必须断开跳线,因为这些电压会损坏板载5v稳压器。
在这种情况下,5v引脚将用作输入,因为我们需要将其连接到5v电源,以使ic正常工作。
我们在这里可以注意到,该ic的电压降约为2v。因此,如果使用12v电源,则电动机端子上的电压约为10v,这意味着我们将无法从12v直流电动机中获得最大速度。
这里使用 arduino 为例,这是网上找的一个demo整体的框架如下图所示;
架构 # defineena 9
# definein1 6
# definein2 7
# definebutton 4
introtdirection = 0;
intpressed = false;
voidsetup{
pinmode(ena, output);
pinmode(in1, output);
pinmode(in2, output);
pinmode(button, input);
// set initial rotation direction
digitalwrite(in1, low);
digitalwrite(in2, high);
}
voidloop{
// read potentiometer value
intpotvalue = analogread(a0);
// map the potentiometer value from 0 to 255
intpwmoutput = map(potvalue, 0, 1023, 0, 255);
// send pwm signal to l298n enable pin
analogwrite(ena, pwmoutput);
// read button - debounce
if(digitalread(button) == true) {
pressed = !pressed;
}
while(digitalread(button) == true);
delay( 20);
// if button is pressed - change rotation direction
if(pressed == true& rotdirection == 0) {
digitalwrite(in1, high);
digitalwrite(in2, low);
rotdirection = 1;
delay( 20);
}
// if button is pressed - change rotation direction
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。
电动自行车充电连接器新国标发布
为什么越南PCB产值份额增长最快?
他用VR眼镜创造了一项纪录:戴了25小时 中间呕吐N次
配电箱与配电柜、控制箱有什么区别
拼多多将AirPods Max耳机纳入百亿补贴
H桥到底是什么一个H桥驱动扫盲教程详细说明
私家车、地铁还是公交?OUT啦!快来围观九号电动车
USB3.0连接器比USB2.0连接器好在哪里
红米Note7测评搭载满血骁龙660处理器支持QC4快充
LCD玻璃基板和Gorilla (R) 玻璃市场强劲,康宁宣
iPhone X触控问题显示器模块更换方案
设计多轨电源时,器件布局和布线很重要
慧翰微电子亮相2021佐思智能汽车年会
折叠手机市场三星独占近90%份额?
LED显示屏如何防火,原理是怎样的
SMT基本工艺
浅谈嫦娥五号背后的故事
模拟芯片市场空间有多大_PMIC主要应用及规模
CEO施侃 | 利用科技赋能,嵌入数字经济生态
小米、余承东互怼!折叠屏手机关键技术,究竟谁抄谁?