ros slam microros之H电桥电机驱动原理介绍

news/2024/7/7 19:39:11/文章来源:https://www.cnblogs.com/ai-ldj/p/18279260

一、电机驱动原理介绍
正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。

1.1 H桥电路
让电机动起来只需要通电就行,比如我们用的额定电压为12V 130RPM的电机,当给到12V的电压时可以达到额定转速130转/分,但如果我们给8V的电压,此时电机依然可以转动,但转速就相对较低。
只是转起来还不行,要想控制机器人前进后退,左转右转,我们还需要控制轮子的转的方向,想要控制转速我们则需要控制给到电机的电压。
H桥(H-Bridge)电路可以帮我们实现上面两个功能,之所以叫H桥,因为这个电路长的像H。通过该电路可以将电源电压正向或反向地施加到电动机上,从而实现正向、反向转动和制动等功能。

 该电路由四个独立开关管(MOSFET)组成,在H桥电路中,两个开关管组成一对,如上图所示。当我们接通Q1和Q4,关闭Q3和Q2时,电源电压正向施加到电动机上,使其正向转动。

 

我们关闭Q1和Q4,接通Q2和Q3时,电源电压反向施加到电动机上,使其反向转动。

 在制动时,同时关闭四个开关管,这样电动机会在短时间内停止转动。另外,通过之前介绍的在PWM(脉宽调制)控制下,可以通过改变开关管的开关时间比例,就可以实现电动机的速度控制。

1.2 原理图
看完H桥电路原理,我们来讲讲在FishBot主控板上如何搭载的该电路的。在开发板上我们采用了一款H桥电路芯片DRV8833来实现电机的驱动。

 看完H桥电路原理,我们来讲讲在FishBot主控板上如何搭载的该电路的。在开发板上我们采用了一款H桥电路芯片DRV8833来实现电机的驱动。

 

该电路原理图如上图所示,我们通过AIN1(IO23)的高低电平控制H桥中Q1和Q4的开关,通过AIN2(IO22)控制Q2和Q3的开关,所以我们在程序中通过控制AIN1和AIN2的高低电平变化就可以完成对电机正反转的控制。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/736163.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ros slam 之移动机器人常用传感器

本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。 对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。一、感知-传感器所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 距…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS HPE (慧与) 定制版

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、NEC…

day33-Django3.2(二)

四、视图 django的视图主要有2种,分别是函数视图和类视图.现在刚开始学习django,我们先学习函数视图(FBV),后面再学习类视图[CBV]. 4.1、请求方式 web项目运行在http协议下,默认肯定也支持用户通过不同的http请求发送数据来。django支持让客户端只能通过指定的Http请求来访问到…

为什么单元测试不是持续交付的唯一答案

残酷的事实是,大多数企业在持续交付的道路上相当落后。为了让持续集成和持续交付(CI/CD)成为现实,企业必须审查其内部流程,并重新思考如何处理软件交付生命周期。过去的清单和评论根本不是前进的方向。残酷的事实是,大多数企业在持续交付的道路上相当落后。对软件交付过程…

蓝桥杯Java组常用知识点

备战蓝桥杯学习笔记基本数据类型 int的取值范围: -2^31 ~ 2^31-1 -2147483648 ~ 2147483647(约等于10的9次方) long long的取值范围: -2^63 ~ (2^63-1) -9223372036854775808 ~ 9223372036854775807(约等于10的18次方) 输入输出 使用文件流对输入输出的重要性:https://…

Linux内存不够了?看看如何开启虚拟内存增加内存使用量

1、为什么要使用虚拟内存 当我们没有多余的钱去购买大内存的云服务器时,但是当前服务器里面的软件和程序运行的比较多导致内存不够用了。这个时候可以通过增加虚拟内存来扩大内存容量。但是在启用虚拟内存时,需要仔细考虑系统的实际需求和硬件配置,以及权衡虚拟内存的优缺点…

camunda数据库表结构详细说明

本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎的数据库架构和ER模型,Camunda7.19.0共49张表,包括了BPMN流程引擎、DMN规则引擎、CMMN引擎、历史数据、用户身份等方面的表结构定义,以及表与表之间的关联关系。本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎…

camunda多租户技术架构介绍和测试验证

多租户考虑的是单个 Camunda 安装应该为多个租户提供服务的情况。对于每个租户,应做出一定的隔离保证。例如,一个租户的流程实例不应干扰另一租户的流程实例。 多租户可以通过两种不同的方式实现。一种方法是每个租户使用一个流程引擎。另一种方法是仅使用一个流程引擎并将数…

IEEE 8802-3 以太网标准解读

PHY: CarrierSense 载波侦听 ReceveDataValid 接受数据有效 CollisionDetect 碰撞检测 Transmitting 传输中 TransmitBit 传输比特 SFD 10101011 开始 ReceiveBit 接受比特 Wait 等待1、MA_DATA.request 定义了MAC客户端访问单独实体或者z在组地址的前提下访问多个实体 MA…

在C#中使用RabbitMQ做个简单的发送邮件小项目

在C#中使用RabbitMQ做个简单的发送邮件小项目 前言 好久没有做项目了,这次做一个发送邮件的小项目。发邮件是一个比较耗时的操作,之前在我的个人博客里面回复评论和友链申请是会通过发送邮件来通知对方的,不过当时只是简单的进行了异步操作。 那么这次来使用RabbitMQ去统一发…

【进阶篇】Java 项目中对使用递归的理解分享

笔者在最近的项目开发中,遇到了两个父子关系紧密相关的场景:评论树结构、部门树结构。具体的需求如:找出某条评论下的所有子评论id集合,找出某个部门下所有的子部门id集合。【进阶篇】Java 项目中对使用递归的理解分享 目录【进阶篇】Java 项目中对使用递归的理解分享前言一…

C#/.NET/.NET Core编程技巧练习集(学习,实践干货)

DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NET Core各种编程常用语法、算法、技巧、中间件、类库等等。GitHub开源地址:https://github.com/YSGStudyHards/DotNetE…

2024年6月文章一览

2024年6月编程人总共更新了5篇文章: 1.2024年5月文章一览 2.《编译原理》阅读笔记:p18 3.《编译原理》阅读笔记:p19-p24 4.《编译原理》阅读笔记:p25-p32 5.《Programming from the Ground Up》阅读笔记:p1-p18 6月再挖一个坑,开始《Programming from the Ground Up》的学…

【论文阅读】自动驾驶光流任务 DeFlow: Decoder of Scene Flow Network in Autonomous Driving

再一次轮到讲自己的paper!耶,宣传一下自己的工作,顺便完成中文博客的解读 方便大家讨论。Title PictureReference and pictures paper: https://arxiv.org/abs/2401.16122 code: https://github.com/KTH-RPL/DeFlow b站视频: https://www.bilibili.com/video/BV1GH4y1w7LQ1.…

利用SonarCloud和Azure DevOps提升代码质量

利用SonarCloud和Azure DevOps提升代码质量 在软件开发过程中,代码质量是至关重要的。为了确保代码的清洁和安全性,我们可以使用SonarCloud——一个基于云的代码质量与安全服务。SonarCloud不仅对开源项目免费,还为私有项目提供了14天的免费试用。本文将指导您如何将SonarCl…

免费申请一张SSL证书-包含100个域名-挑战!!

挑战一下,申请一张包含100个域名的证书 首先,我们访问来此加密网站,进入登录页面,输入我的账号密码。登录后,咱们就可以开始申请证书,首先说一下,咱账号是SVIP哦,只有SVIP才可以申请包含100个域名的证书。为了方便验证,咱么先添加一下域名接口,这样可以自动配置验证信…

.net6+ 在单文件应用程序中获取程序集位置

一般来说,获取执行程序集的位置,您可以调用: var executableDirectory = System.Reflection.Assembly.GetExecutingAssembly().Location;如果发布为单个文件, 会提示如下警告 warning IL3000: System.Reflection.Assembly.Location always returns an empty string for assemb…

(set+拓扑排序) CF1572A Book

题意:思路: 每本书之间很明显存在拓扑关系,由此想到拓扑排序。使用set对图进行拓扑排序,将阅读次数小的放在前面,若阅读次数相同则按照阅读章节编号排序。假设第 x 章在第 y 章理解之后就能理解,若 x 大于 y 则本次阅读就可以理解 x 章,否则需要下一次才能理解第 x 章。 …

【github报错解决】Failed to connect to github.com port 443: Couldnt connect to server

今天使用github push时候报错的 解决办法: 1、查看本机代理 路径:设置->网络和Internet->代理->地址:端口 2、用git cmd修改配置,port就用刚刚代理端口值git config --global http.proxy http://127.0.0.1:[port] git config --global https.proxy http://127.0.0…

LVGL组件

LVGL组件的使用 目录LVGL组件的使用1 . 父和子对象2. 部件的基本属性及设置3. 图解:还有其他样式可以设置2. 组件分类 1 . 父和子对象2. 部件的基本属性及设置 /******** 设置打小 ********/ /******** 注意:设置部件位置时,坐标原点在父对象的左上角 ********/ lv_…