一份很用心的H桥驱动扫盲教程

什么是H桥?

H桥是一个比较简单的电路,通常它会包含四个独立控制的开关元器件(例如MOS-FET),它们通常用于驱动电流较大的负载,比如电机,至于为什么要叫H桥(H-Bridge),因为长得比较像字母H,具体如下图所示;

这里有四个开关元器件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,Q4之间流动,通过MOS-FET的内阻将电能消耗掉;

应用

实际使用的时候,用分立元件制作H桥是很麻烦的,市面上已经有很多比较常用的IC方案,比如常用的L293D、L298N、TA7257P、SN754410等。接上电源、电机,通过输入控制信号就可以驱动电机了;

下面是某宝上的L298N模块,比较常见,对于新手玩家非常友好,接线也十分简单;

这个模块有一个板载5V稳压器,该稳压器可使用跳线的方式进行使能。

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

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

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

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

这里使用Arduino为例,这是网上找的一个Demo整体的框架如下图所示;

#define enA 9
#define in1 6
#define in2 7
#define button 4

int rotDirection = 0;
int pressed = 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
int potValue = analogRead(A0);
// Map the potentiometer value from 0 to 255
int pwmOutput = 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。

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

(0)

相关推荐

  • H桥电机驱动电路详解

    电机:俗称"马达",依据电磁感应定律实现电能转换或传递的一种电磁装置.包括:电动机和发电机. 电动机在电路中是用字母M表示,它的主要作用是产生驱动转矩:作为用电器或各种机械的动力源 ...

  • (2条消息) h桥控制电机刹车

    (2条消息) h桥控制电机刹车

  • 直流有刷电机驱动项目需求分析,超实用!

    一. 项目名称:<直流电机驱动器设计> 二. 项目需求分析: 我们想设计一款直流有刷电机驱动器,那么在设计驱动器之前,我们需要明确驱动器的控制对象,知道控制对象的参数,这样才能设计出一款适 ...

  • 直流有刷电机的正反转驱动方法

    直流电机具有有刷电机和无刷电机之分,无刷电机在启动的时候需要识别转子的位置,控制上相对比较麻烦,而有刷电机具有电刷和换向器,控制上比较容易.只要给正向的直流电电机就实现正转,电源反接后就会反转.所以, ...

  • ADC采样积分方式的BLDC方波无感控制的原理

    本文主要参考了TIDA-010031参考设计,分析下ADC采样积分方波无感控制的原理,方便大家更好地完成类似的方案设计. 1.下面是典型的三相BLDC电机控制框图. 三个半桥驱动BLDC无刷电机,检测 ...

  • 干货 | 深入浅出聊聊H桥驱动电路

    什么是H桥? H桥是一个比较简单的电路,通常它会包含四个独立控制的开关元器件(例如MOS-FET),它们通常用于驱动电流较大的负载,比如电机,至于为什么要叫H桥(H-Bridge),因为长得比较像字母 ...

  • H桥驱动直流电机电路讲解,最后一集

    H桥驱动直流电机电路讲解,最后一集

  • h桥驱动完整电路图

    stm32驱动直流电机的程序与电路设计(ir2110s自举电路+h桥+高级定时器和***区pwm)

  • IGBT终于不炸了!详解逆变H桥IGBT单管驱动 保护

    这几天沉下心来专门给逆变器的后级,也就是大家熟悉的H桥电路换上了IGBT管子,用来深入了解相关的特性. 大家都知道,IGBT单管相当的脆弱,同样电流容量的IGBT单管,比同样电流容量的MOSFET脆弱 ...

  • 详解电机驱动中逆变H桥IGBT单管驱动+保护!

    这几天沉下心来专门给逆变器的后级,也就是大家熟悉的H桥电路换上了IGBT管子,用来深入了解相关的特性. 大家都知道,IGBT单管相当的脆弱,同样电流容量的IGBT单管,比同样电流容量的MOSFET脆弱 ...

  • IGBT终于不炸了!详解电力逆变器H桥IGBT单管驱动+保护!

    这几天沉下心来专门给电力逆变器的后级,也就是大家熟悉的H桥电路换上了IGBT管子,用来深入了解相关的特性. 大家都知道,IGBT单管相当的脆弱,同样电流容量的IGBT单管,比同样电流容量的MOSFET ...

  • 这次IGBT终于不炸了!详解逆变H桥IGBT单管驱动 保护

    这几天沉下心来专门给逆变器的后级,也就是大家熟悉的H桥电路换上了IGBT管子,用来深入了解相关的特性. 大家都知道,IGBT单管相当的脆弱,同样电流容量的IGBT单管,比同样电流容量的MOSFET脆弱 ...

  • 单片机实训5 H桥式驱动电路——电机控制

    proteus如图所示,左边一栏为所需元件 2.keil单片机程序 #include<reg51.h> sbit motor0=P1^0; //motor0 和motorl接H桥两端 sb ...

  • “百病从肝治”!这份很全的养肝方法

    肝是人体非常重要的器官,既排毒也藏血,中医有百病从肝治的说法,本文介绍肝脏和人体健康的各方面关系,以及保养方法. 在西医的眼里,肝脏是一个代谢系统,一个重要脏器,就像是人体的一个化工厂,它掌管着糖.脂 ...