h桥 一份很用心的H桥驱动扫盲教程
什么是h桥?
h桥是一种相对简单的电路,通常包含四个独立控制的开关元件,通常用于驱动电机等大电流负载。为什么叫H桥,因为它看起来像字母H,如下图所示;
有四个开关元件Q1、Q2、Q3和Q4,另一个DC电机M、D1、D2、D3和D4是MOS-FET的续流二极管。
开关状态
以DC电机的控制为例,简要介绍了H桥的几种切换状态,其中正转和反转是人为指定的方向,在实际工程中可以根据实际情况进行划分;
向前
通常H桥用来驱动感性负载,这里我们驱动一个DC电机;
打开Q1和Q4;
关闭Q2和Q3;
此时假设电机正转,电流依次经过Q1、M、Q4,图中用黄色线段标注,如下图所示。
前进后退
另一种状态是电机反转;此时,四个开关组件的状态如下:
关闭Q1和Q4;
打开Q2和Q3;
此时电机反转,电流依次通过Q2、M、Q3,图中用黄色线段标出,如下图所示。
反向速度调节
如果你想加速DC马达,其中一个方案是:
关闭Q2和Q3;
开启Q1和Q4,输入占空比为50%空的PWM波形,从而达到降低转速的效果。如果需要提高转速,将输入PWM的占空比空设置为100%;
详情如下:
停止状态
这里以电机从正转切换到停止状态为例;
向前旋转的情况下;Q1和Q4开放;
这时,如果Q1和Q4关断,DC电机内部可以等效为电感,也就是电感负载,电流不会突然变化,所以电流会继续按原来的方向流动。这时,我们希望电机中的电流能够迅速衰减;
这里有两种方法:
第一种:关断Q1和Q4,此时电流仍会流过反向续流二极管,短暂接通Q1和Q3,以达到快速衰减电流的目的;
第二,当你准备停车时,关掉Q1,打开Q2。此时电流不会快速衰减,电流在Q2、M、Q4之间循环,电能通过MOS-FET的内阻消耗。
app应用
下面是某宝上的L298N模块,比较常见,对新手玩家很友好,接线也很简单;
L298N模块
该模块有一个车载5V调节器,可以通过跳线使能。
如果电机供电电压高达12V,我们可以启用5V稳压器,5V引脚可以作为输出,比如给Arduino板供电。
但是,如果电机电压高于12V,必须断开跳线,因为这些电压会损坏车载5V调节器。
在这种情况下,5V引脚将被用作输入,因为我们需要将其连接到5V电源,以便集成电路正常工作。
我们在这里可以注意到,集成电路的压降约为2V。因此,如果使用12V电源,电机端子上的电压约为10V,这意味着我们不会从12V DC电机获得最大速度。
这里用Arduino作为例子。这是网上找到的一个Demo的整体框架,如下图所示;
模式# defineenA 9
# definein1 6
# definein2 7
#定义按钮4
introddirection = 0;
intpressed = false
voidsetup{
pinMode;
pinMode;
引脚模式;
pinMode;
//设置初始旋转方向
数字写;
数字写;
}
voidloop{
//读取电位计值
int potvalue = analog read;
//将电位计值从0映射到255
intpwmOutput = map;
//向L298N使能引脚发送脉宽调制信号
模拟写;
//读取按钮-去抖
if= = true){ 0
按下=!压制的;
}
while= true);
延迟;
//如果按下按钮-改变旋转方向
if{ 0
数字写;
数字写;
rot direction = 1;
延迟;
}
//如果按下按钮-改变旋转方向
if{ 0
数字写;
数字写;
rot direction = 0;
延迟;
}
}
简要描述:首先,我们需要定义程序所需的引脚和变量。
在设置中,我们需要设置销模式和电机的初始旋转方向。
在回路中,我们先读取电位计值,然后将得到的值从0变为1023,并线性映射到PWM信号的0到255之间的值,使其从0到100%占据空比例。
然后使用模拟写功能将PWM信号发送到L298N板的Enable引脚,实际驱动电机。
接下来,我们检查按钮是否被按下。如果是这样,我们反转输入1和输入2的状态,从而改变电机的旋转方向。该按钮将用作切换按钮,每次按下该按钮时,电机的旋转方向都会改变。
某宝上有很多这样的车,如下图所示;主控可以用51单片机或STM32代替。当然,Arduino没问题。可以用L298N快速造车;
宝藏车概述
本文简单介绍了H桥的原理,并以DC电机为例简单介绍了驱动状态,比较简单,适合新手玩家。最后给出了一个基于Arduino和L298N的驾驶实例,供参考欣赏,有兴趣的话可以去探个宝。
由于作者能力和水平有限,本文难免出现错误和失误。请随时给我们一些建议。
——结局——