0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入浅出剖析H桥驱动电路

h1654155149.6853 来源:小麦大叔 作者:菜刀和小麦 2021-10-08 09:59 次阅读

什么是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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    170

    文章

    5480

    浏览量

    169503
  • 元器件
    +关注

    关注

    111

    文章

    4524

    浏览量

    88664
  • 稳压器
    +关注

    关注

    24

    文章

    4086

    浏览量

    92019
  • 直流电机
    +关注

    关注

    35

    文章

    1623

    浏览量

    69465

原文标题:干货 | 深入浅出讲解H桥驱动电路

文章出处:【微信号:电子工程世界,微信公众号:电子工程世界】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新型H驱动设计存在问题,请各路大神指正!!!!

    新型H驱动设计存在问题,请各路大神指正!!!! 如上图设计的H电路,设计没有采用自举
    发表于 04-18 10:57

    【年度精选】2023年度top5榜单——电机控制资料

    读懂PID控制算法(抛弃公式,从原理上真正理解PID控制) 作者:ben111 下载量:360 推荐理由: 这篇资料从原理上深入浅出地解释了PID控制算法,让读者真正理解其核心思想。摒弃了复杂
    发表于 01-16 14:34

    深入剖析高速SiC MOSFET的开关行为

    深入剖析高速SiC MOSFET的开关行为
    的头像 发表于 12-04 15:26 381次阅读
    <b class='flag-5'>深入</b><b class='flag-5'>剖析</b>高速SiC MOSFET的开关行为

    javascript深入浅出介绍

    JavaScript是一种广泛使用的脚本语言,用于开发互联网应用程序。它非常受欢迎,因为它可以用于网页开发,服务器端开发以及移动应用程序开发。本文将深入浅出地介绍JavaScript的各个方面,包括
    的头像 发表于 12-03 11:09 1.1w次阅读

    javascript深入浅出

    JavaScript是一种广泛使用的编程语言,常用于Web开发。下面是对JavaScript的深入浅出的解释: JavaScript简介 JavaScript是一种解释型、动态类型、基于原型的语言
    的头像 发表于 11-16 10:34 329次阅读

    双通道 H 电机驱动芯片AT8833,软硬件兼容替代DRV8833

    的工作原理和特点。一、工作原理双通道 H 电机驱动芯片是由多个晶体管和电阻器组成的电路,在正常工作状态下,其内部有四个开关管,分别为上下电流通路的开关管。通过对这些开关管的开关控制,
    发表于 11-08 10:20

    单通道低压 H 电机驱动芯片AT9110H 兼容L9110 马达驱动芯片

    H直流电机驱动电路是一种用于控制直流电机运转的电路,其主要特点是可以实现正反转控制,控制电机转速和方向,同时也具有过流保护功能。
    发表于 11-07 14:47

    两个驱动IC组成的H电路:正弦波输出方波原理?

    如图所示:为两个驱动IC组成的H电路,原本是输出正弦波的,通过将1号IC的1,2引脚连接2号IC的2,1引脚,实现了输出波形变为方波,这是什么原理啊?
    发表于 10-19 09:02

    H驱动有刷电机资料分享

    使用Proteus仿真,使用单片机,搭建H驱动电路,使用NMOS驱动24V有刷直流电机,资料内包含整个程序工程,peoteus工程,以及一
    发表于 09-27 06:32

    无感无刷直流电机之电调设计全攻略

    Motors Made Easy》(Freescale 公司,编号 PZ104)和 Atmel 公司的编号为:AVR194、AVR491、AVR492 的几篇文档,都写得很不错,深入浅出,很适合入门
    发表于 09-21 08:23

    #深入浅出学习eTs#(八)“猜大小”小游戏

    本项目Gitee仓地址:[深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com)](   上一章节提到的模拟器存在的BUG问题,目前没有办法直接改善,本来打算直接使用鸿蒙远程设备
    的头像 发表于 05-17 15:08 724次阅读
    #<b class='flag-5'>深入浅出</b>学习eTs#(八)“猜大小”小游戏

    #深入浅出学习eTs#(十)蓝药丸还是红药丸

    本项目Gitee仓地址: 深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) 一、需求分析 我们本章的内容选择致敬黑客帝国,如果你处于主角的立场,你会选择蓝药丸还是红药丸呢?本章
    的头像 发表于 05-17 15:07 685次阅读
    #<b class='flag-5'>深入浅出</b>学习eTs#(十)蓝药丸还是红药丸

    #深入浅出学习eTs#(九)变红码?专属二维码生成

    本项目Gitee仓地址: 深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) 一、需求分析 我们本章的内容是要制作一个可以随着自己想要内容而变化的一个二维码,通过输入框输入
    的头像 发表于 05-13 13:21 1005次阅读
    #<b class='flag-5'>深入浅出</b>学习eTs#(九)变红码?专属二维码生成

    深入浅出学习eTs(七)如何判断密码是否正确

    本项目Gitee仓地址: 深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) 一、基本界面 本项目基于#深入浅出学习eTs#(四)登陆界面UI,继续进行,实现一个判断的功能
    的头像 发表于 05-13 13:20 646次阅读
    <b class='flag-5'>深入浅出</b>学习eTs(七)如何判断密码是否正确

    深入浅出学习eTs(一)模拟器/真机环境搭建

    本项目的Gitee仓地址: 深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) (之前有些意外,数据丢失了,现在重新发,且不参与任何活动,在第一篇说明一下,之后就不
    的头像 发表于 05-13 13:17 1139次阅读
    <b class='flag-5'>深入浅出</b>学习eTs(一)模拟器/真机环境搭建