- 本课程为精品课,您可以登录eeworld继续观看:
- 讲座视频 - 直流电机 - 接口
- 登录
- 课程目录
- 相关资源
- 课程笔记
大家好,我是 Jon Valvano。
现在,是时候让电机旋转了。
在前一个视频中,我们讨论了直流电机的物理特性。
在前一个视频中,我们讨论了直流电机的物理特性。
今天,我们将讨论如何
把电机连接到您的微控制器,
因为这是一项精细的操作,
有 0.5A 的电流流过电机,而只有
几毫安的电流要流出微控制器。
因此,我们需要使用一个接口
把我们的直流电机连接到微控制器。
我们需要做两件事情,
一件是打开和关闭电机,
另外一件是使它向后移动,
因为机器人可能会撞到墙,
从而需要后退并沿着其他方向行进。
因此,在本视频中,我们将讨论此接口。
因此,在本视频中,我们将讨论此接口。
您应该记得,上一节视频中,
我们尝试解决的主要问题是
我们尝试生成相当大的电流。
因此,驱动该电机所需的电流
可能大约为 0.5A 。
而流出微控制器的电流
通常小于 6mA 。
因此,我们需要一个电流放大器,
以获得更大的电流。
这是一个由达林顿管构成的放大器示例。
第二个我们应该记得的重要问题是,
我们不会通过调节电机上的电压来使
电机慢速、中速或快速旋转。
我们要做的是调节这里这个波形的占空比,
因此,如果我想快速旋转,我将提供高占空比,
此时占空比等于 H/(H+L) 。
如果要想以中等速度旋转,我将为它提供中等占空比。
如果我想慢速旋转,我将为它提供低占空比。
因此,我将能够通过调节占空比
来调节为该电机提供的功率大小。
这是一项相当简单的操作,
H/(H+L) 乘以 Vm ,
Vm 是电池提供的 7.2V 电压,
再乘以电流 I 。
电流 I 的成分相当复杂,
它是各种因素的函数。
我们将在下一张幻灯片中对此进行探讨。
总而言之,这是向电机提供的功率。
总而言之,这是向电机提供的功率。
软件可以调节参数 H。
我们需要很大的电流。
好,让我们使用该达林顿晶体管
构建第一个接口。
这里是基极,
这里是集电极,
这里是发射极。
我们要将该晶体管驱动至饱和状态,
我们要将该晶体管驱动至饱和状态,
或者完全关闭。
因此我们将经历两个阶段,
第一个阶段是,如果这里的电压是 3.3V ,
它将生成足够的 VBE--
它将生成足够的 VBE--
这是饱和状态下的 VBE --
来打开该晶体管。
我们将生成 --当图中的晶体管
打开时,它将生成大约0.5V 的 VCE 电压。
打开时,它将生成大约0.5V 的 VCE 电压。
这意味着,我们将一共有大约 6.7V 的
电压来使电机旋转。
这已经足够快了,
足以让电机旋转。
这里选择达林顿管,是为了
能够生成足够的电流来驱动电机。
如果需要高达 0.5A 的电流,
必须确保管子足够大,
以满足该电流。
正如我在前一张幻灯片中说过的,这是一个电流放大器。
因此,它所做的是,它获取这里的
基极电流,并对它进行放大,以获取那里的集电极电流。
这实现了相当大的增益,大约为 1,000。
那么,这里还剩的唯一一件事是选择该 Rb 值。
Rb 选择将采用 --
我们可以计算所需基极电流的大小,
换句话说,我将代入微控制器的
输出高电平,
在这里,高电平电压可能会低至 3V 。
我要确定VBE --
为了使管子达到饱和状态,我需要多大的 VBE?
由于我需要 0.5A 的电流,让我们保证
电路能够在 1A 以下都能正常工作,
因此,我需要至少1mA 的基极电流。
因此,我需要至少1mA 的基极电流。
那么,这意味着我将选择一个小于
500 欧姆的电阻。
然后,为了把它驱动至完全饱和状态,实际上
将选择一个大小是它的五分之一的电阻。
因此,我将在这里放置一个 100 欧姆的电阻。
关于晶体管设计的技巧在于,
我会一点一点地增大电流,
我会一点一点地增大电流,
以确保它达到饱和状态。
另一方面,当它关闭时,情况相当简单。
当管子关闭时,其电压为零。
这将产生零安的基极电流,
该晶体管将关闭,
因此,ICE将为零。
现在,这实际上会导致一个问题,
因为如果我把 ICE视为时间的函数,
我将驱动0.5A 的电流,
然后我要把它关闭。
管子关闭的过程只需几纳秒,
因此,这里的电流将从 0.5A
降低至零。
由于电机中电感的存在,这将生成相当大的电压。
由于电机中电感的存在,这将生成相当大的电压。
因此,为了消除该电压,
需要在这里添加一个缓冲二极管。
我将在这里添加一个缓冲二极管,以消除反向 EMF。
请注意,不要与正向 EMF 相混淆,
正向 EMF 是电能到机械能的转换,
而反向 EMF 是电机启动时由于电感所导致的,
而反向 EMF 是电机启动时由于电感所导致的,
在电流突然关断时产生的反向冲击电压。
因此,这里将产生一个 VCE,
一个非常大的 VCE,如果我不消除它的话,它可以达到几百伏。
二极管的任务是捕获该过冲的顶部并把它截断。
二极管的任务是捕获该过冲的顶部并把它截断。
好的,那么这就是达林顿电路,
如果您的机器人从不会撞到墙,那么这个电路很好用。
它相当简单,易于构建,易于测试。
达林顿管的一个低效之处在于,
产生了0.5V 的电压降。
因此,如果您想实现更高的效率,
如果您希望利用全部电压 --
你希望获取全部7.2V 电压并将它
驱动到电机中,就在这里,
我们可以使用一个 MOSFET。
这是一个 N 沟道 MOSFET,
这是栅极,
这是源极,
这是漏极。
MOSFET 的效率要高得多。
当它打开时,这里的漏极-源极电压非常接近于零。
当MOSFET打开时,这里的漏极-源极电压非常接近于零。
但 MOSFET 的麻烦之处在于,
它无法使用电流来驱动,
需要一个栅极-源极电压。
它需要栅极-源极电压才能打开。
实际上 3V 的电压还不足以打开一个典型的 MOSFET。
实际上 3V 的电压还不足以打开一个典型的 MOSFET。
因此,我们要做的是,
我们将从我们的电池获取 7.2 伏电压,
然后使用这里的普通 BJT,
使得这里的电压要么为 7.2V(当BJT打开时),
要么为零(当BJT关断时)。
那么,让我们来实现该电路。
这正好是相对于微控制器的负逻辑。
这正好是相对于微控制器的负逻辑。
因此,如果微控制器在这里输出零,
就像达林顿管那样,这将使这个 BJT 关闭。
如果 BJT 关闭,VGS 电压将变为 7.2 伏。
MOSFET 打开,现在可以通过很大的电流。
根据我在这里选择的 MOSFET,
我可能会获得 10A、20A、40A的电流,等等。
不过我们仅需要 0.5A的电流。
但 MOSFET 的效率很高。
让我们来看看另一半时间的情况,
如果我在这里输入 3.3V,现在我将得到 IB--
这里是基极,
我将得到 IB,
同时得到 VBE。
那么,我将得到 IB 和 VBE,
该晶体管(BJT)现在将打开。
如果它打开,这里将有0.5V 的 VCE。
如果它打开,这里将有0.5V 的 VCE。
但该晶体管的 VCE 等于MOSFET 的 VGS,
但该晶体管的 VCE 等于MOSFET 的 VGS,
因此 VGS 将关闭,
因此 VGS 将关闭,
从而导致 MOSFET 关闭。
现在,我可以通过 PWM 来驱动它,
现在,我可以通过 PWM 来驱动它,
但要记住必须使用负逻辑。
因此,MOSFET 有利于实现高效率。
同时,它们还可实现两个方向的电流导通。
那么,现在让我们向您展示两个能够
驱动电流的电路。
这是我们用的电机模型,
您应该记得它包含电阻、
电感和 EMF。
这里是电机,
这里是相同的电机。
如果我想使用达林顿晶体管
类型的电路,那么我可以把它们放置在一个电桥中。
这是电路看起来的样子,
也就是它内部的样子。
基本而言,如果我打开 Q1 和 Q4,
同时关闭 Q2 和 Q3,
那么电流将沿这个方向流动,
沿那个方向流过电机。
相反,如果我关闭 Q1 和 Q4,
同时打开 Q2 和 Q3,
现在电流将沿这个方向流动。
Q3 打开,它将沿那个方向流动,
是与刚才相反的方向。
那么通过这种特定接口,我可以
让电流向左或向右流动,也就是机器人向前或向后移动。
现在,它在这里用的仍然是达林顿管,
因此它仍具有 di/dt,以及V = L*di/dt 这些特性。
现在,电流可能会以各种古怪而荒谬的方式流动。
因此,我将在这里使用一些二极管,
以便在我沿一个方向
或者沿另一个方向关闭时消除该电流。
那么,L293 驱动器电路,您可以通过这个网址找到它 --
实际上需要四个二极管
来进行缓冲。
来进行缓冲。
这些是缓冲二极管。
这是一个相当简单的接口,
例如,如果我在这里输入3.3V,在那里输入0,
电流将向下流动。
如果我在这里输入0,在这里输入 3.3V,
电流将向上流动。
因此,它是一个相当简单的接口。
如果您没有
从供应商处购买的电机驱动板,您可以自行搭建该电路,
它能够很好地工作。
不过,您将在达林顿管中损失一点儿电压。
因此,您无法利用全部 7.2V 电压。
现在,如果您想两全其美,我们可以做的是
在电桥中使用 MOSFET。
这是我们我们的目标。
我们将不使用达林顿管,
因为它在开关时产生了 0.5V至 1V 的电压降,
我们将使用 MOSFET 取而代之,
它只会在开关中产生 0.1V 的压降。
但现在,我们面临这样一个问题:我们如何同时控制电桥两侧?
那么,这是一个 P 沟道MOSFET 驱动电路。
那么,这是一个 P 沟道MOSFET 驱动电路。
这个特定的电路中电流仅向下流动,
但是,如果我们在 H 桥配置中使用四个晶体管 --
需要强调的是,这是一个相当复杂的电路,
所以,我们不使用离散器件来搭建它,
如果您确实需要 MOSFET 驱动器,
我们将使用集成的 MOSFET 驱动芯片。
这里是一个例子,
这是 Pololu 电机驱动板上完全一样的 MOSFET 驱动,
我们将稍后再介绍。
但总而言之,它可以做四件事情,
我们感兴趣的是其中两件。
我可以打开这个和那个 MOSFET,
让电流沿这个方向流动。
很显然,其他两个管子必须关闭,否则马上就会发生火灾。
我可以做的另外一件事是,我可以切换电流方向。
这些可以关闭,
其他两个可以打开。
如果我这么做,电流会沿另一个方向流动。
它的有趣之处在于,如果愿意,我可以把它们全部关闭。
如果把它们全部关闭,它将变为零,
不会有任何电流进行流动。
因此,基本而言,我要做的是,
我可以控制方向和 --
换句话说,是使用圆圈中的状态还是方块中的状态?
这将决定电机转动的方向。
然后,我将用另一条导线传输 PWM 控制信号,
以控制提供的功率大小。
因此我可以通过这些 H 桥
同时控制方向和速度,
而且效率相当高。
在这四个开关上仅有零点几伏的电压降。
在这四个开关上仅有零点几伏的电压降。
这是它在电机驱动板上的样子。
这是其中一个 DRV 8838 --
实际上有两个 DRV8838。
通过切断板上跳线可以使它们工作,
通过六个镍氢电池为电机供电,
通过六个镍氢电池为电机供电,
这是我的电机电压,
也就是用来驱动电机的电池电压。
芯片内部,有一个 H 桥,
电流将沿着这个方向
或另一个方向流动,具体取决于机器人移动方向。
这里是决定方向的信号,
相位信号将决定方向。
另外我将在 PWM 信号中
输入振幅大小。
它(DRV8838)有一个低功耗睡眠模式,
但我们不会使用这个模式。
因此,这里的引脚将处于高电平,即关闭状态,
这不会把它置于睡眠模式,
因为该引脚是负逻辑信号。
因此,这里的 3.3V将激活该器件。
工作时的电流是相当大的,
这就是为什么我们要使用现成的电机驱动板,
电流流经这里后再流过电机并流出,
电流大小为 0.5A,或者电流从电机流出,
并沿另一方向向上流动,
并返回到接地。
总之,有相当大的电流流经该驱动器。
这就是我以前说过的,
基本上,如果您希望电机旋转,使能端应该为高电平。
这样可以激活电机驱动器,
这样(低电平)意味着关闭。
这个(使能)信号最终将是我们的相位信号,
它会是我们的 PWM 信号。
这是我们的 PWM,
我们将提供一个固定频率、可变占空比的驱动信号。
我们将提供一个固定频率、可变占空比的驱动信号。
然后,另一个信号将控制电机转动方向,
向前或向后。
这是从数据表中获取的屏幕截图,
我们来研究一下,
总体而言,它的响应速度很快,
总体而言,它的响应速度很快,
这些是数字信号,
这些数字信号来自于 MSP432。
下面将要标出的是电压,
(数字信号的)电压等级是3.3V 和 0,
(驱动信号的)电压等级是0 和 7.2V。
正如您看到的,如果这边(xOUT1)是正电压,那边(xOUT2)是零,
电流将向下流动。
正如您看到的,如果这边(xOUT2)是正电压,那边(xOUT1)是零,
电流将向上流动。
这就是我们要说的。
概括如下,
有两个电机,因此有两个 8838。
代码相当简单,
我要用这个相位信号来控制方向,
就是这个 PH 信号,
它将决定每个电机转动的方向。
然后,我将使用该 PWM 信号来调节每个电机的占空比。
然后,我将使用该 PWM 信号来调节每个电机的占空比。
有两个电机,因此我可以单独控制每个电机。
一旦您使用电机驱动板搭建了机器人,
一旦您使用电机驱动板搭建了机器人,
事实证明,方向信号为零意味着通过
旋转两个轮子使机器人向前移动。
当方向信号为零时,即使左轮和右轮
实际上相对于电机沿不同的方向旋转,
实际上相对于电机沿不同的方向旋转,
机器人本身还是会向前移动。
如果您把方向引脚设置为 1,机器人将向后移动。
在两种情况下,PWM 信号都是正逻辑。
换句话说,电机实际上将在高电平时运行,
在低电平时停止。
这就是我们本节要讲的内容,
祝您“驾驶”愉快,
不要撞墙过猛。
用好我们的电机驱动器。
请记住,在电机上,
会有很大的电流。
我想它会是 0.5A,但我没有实际
测量过机器人撞到墙之后的电流,
它会增大很多。
在这一侧,我们有很小的电流
和很小的电压,以便微控制器
可以处理它。
H 桥允许我驱动电流流动,(使机器人)向左、向右、向前、向后。
H 桥允许我驱动电流流动,(使机器人)向左、向右、向前、向后。
希望您喜欢本实验。
课程介绍
共计4课时,39分24秒
猜你喜欢
换一换
推荐帖子
- 向大家请教一下!
- #define TRANDATA_TOGSM_TIMES 0350h #define UP_3mA 0352h #define UP_10mA 035Eh ;这是一个6个字长的数组,放置峰值大于10mA的数量 ;该数组占据的地址空间为35E/360/362/364/366/368 #define Rain_Counter_Day 0400h...
- tonylc 微控制器 MCU
- 如何用32768HZ的XT1或16M的XT2产生50M以上的高频时钟信号提高TFT刷新频率,避免闪屏
- 板子是msp430F5438系列,由于使用TFT做波形显示的时候会产生闪屏,所以想产生高频信号,提高TFT显示屏的刷新率。我按照TI历程该参数的时候 XT1部分程序: void Init_CLK(void) { P7SEL |= 0x03 &n...
- ZNNANDWMD 微控制器 MCU
- 【晒经典】多级放大电路篇
- 本帖最后由 dontium 于 2015-1-23 11:13 编辑 本篇幅主要回顾一下经典的多级放大电路,再经典的模拟电路都是由我上一贴基础篇和一下的提高篇组成的,所以望大家好好分享一下 注释:参考《模拟电子技术基础》第三版 1.阻容耦合放大电路 将放大电路的前级输出端通过电容接到后级输入端,这就是阻容耦合方式,第一级为共射放大电路,第二级为共集放大电路;...
- 鑫海宝贝 模拟与混合信号
- TI串口转以太网的问题
- 大家好的,我的开发板是利尔达的串口转以太网,芯片上LM3S6432,的使用TI里面的例程,设置为静态IP。如下: g_sParameters.ulStaticIP=0xC0A80E78;g_sParameters.ulSubnetMask=0xFFFFFF00; g_sParameters.ulGatewayIP=0xC0A80101; lwIPInit(pucM...
- anger0925 微控制器 MCU