Arduino 电机控制:直流电机的 DRV8833 电机驱动器

enter image description here

毫无疑问,L293D 和 L298N 是广泛用于 Arduino 项目的流行电机驱动器。它们以可靠性而著称,并已在无数项目中得到使用。然而,它们确实有一个重大缺点——它们使用双极结型晶体管 (BJT),效率极低。

BJT 的问题在于其导通压降,这会导致能量损失并以热量的形式消散。随着时间的推移,这会导致大量能量浪费,甚至导致驱动器过热,尤其是在需要长时间运行的项目中。 幸运的是,现代电机驱动器(例如DRV8833 arduino)效率极高。DRV8833 不依赖 BJT,而是采用 MOSFET。这些 MOSFET 的压降几乎可以忽略不计,这意味着几乎所有的电源电压都有效地输送到电机。因此,与基于 BJT 的电机驱动器相比,DRV8833 不仅被证明更节能,而且产生的热量也少得多,使其在长时间使用时更安全。

现在,让我们深入研究DRV8833 电机驱动器的强大功能并探索其卓越的特性。

DRV8833 电机驱动器

DRV8833 电机驱动器是德州仪器生产的一款紧凑高效的集成 H 桥驱动器 IC。它专为电机驱动应用而设计,为控制各种类型的电机提供多功能解决方案,包括两个直流有刷电机、一个双极步进电机、螺线管和其他电感负载。 enter image description here

DRV8833 的工作电压范围为 2.7V 至 10.8V,非常适合低压应用。它可连续提供每通道高达 1.2A 的电流,在短时间内,它可处理每通道高达 2A 的峰值电流。 为了确保可靠和安全的运行,DRV8833 包含多种保护功能,例如欠压锁定、过流保护和过热保护。如果发生任何这些事件,H 桥 MOSFET 将被禁用,以防止损坏驱动器和连接的电机。一旦故障情况得到解决,驱动器就会自动恢复正常运行。

此外,DRV8833 具有低功耗睡眠模式,当电机未主动使用时可启用省电功能,使其成为电池供电应用的节能选择。 总体而言,DRV8833 电机驱动器的紧凑尺寸、效率和保护功能使其成为各种电子项目中广泛电机控制应用的绝佳选择。

技术规格 以下是规格: 电机电压 2.7V – 10.8V 逻辑电压 兼容 3V 和 5V 连续输出电流 1.2A(每通道) 峰值输出电流 2A(每通道) 运动通道 2 保护功能 欠压锁定、过流和过热

DRV8833 电机驱动器引脚排列

DRV8833 驱动器共有 12 个引脚,用于将其连接到外界。引脚排列如下: enter image description here

让我们逐一了解所有引脚。

电源插针 DRV8833 电机驱动器模块有两个电源引脚:

菜单

Arduino 电机控制:直流电机的 DRV8833 电机驱动器 2023 年 7 月 21 日 作者:arduinokitproject.com 毫无疑问,L293D 和 L298N 是广泛用于 Arduino 项目的流行电机驱动器。它们以可靠性而著称,并已在无数项目中得到使用。然而,它们确实有一个重大缺点——它们使用双极结型晶体管 (BJT),效率极低。

BJT 的问题在于其导通压降,这会导致能量损失并以热量的形式消散。随着时间的推移,这会导致大量能量浪费,甚至导致驱动器过热,尤其是在需要长时间运行的项目中。

幸运的是,现代电机驱动器(例如DRV8833 arduino)效率极高。DRV8833 不依赖 BJT,而是采用 MOSFET。这些 MOSFET 的压降几乎可以忽略不计,这意味着几乎所有的电源电压都有效地输送到电机。因此,与基于 BJT 的电机驱动器相比,DRV8833 不仅被证明更节能,而且产生的热量也少得多,使其在长时间使用时更安全。

现在,让我们深入研究DRV8833 电机驱动器的强大功能并探索其卓越的特性。

使用 L298N 电机驱动器模块将直流电机与 Arduino 连接起来 目录 DRV8833 电机驱动器 技术规格 DRV8833 电机驱动器引脚排列 电源插针 输出引脚 控制输入​​引脚 对于电机 A: 对于电机B: 睡眠模式引脚 将 SLEEP 引脚设置为低电平: 将 SLEEP 引脚设置为高电平: 故障检测引脚 正常运行: 故障情况: 外部上拉电阻: 清除故障情况: 电流限制 将DRV8833模块连接到Arduino 所需零件 Arduino 示例代码:使用 DRV8833 电机驱动器控制直流电机 代码解释: 相关文章 DRV8833 电机驱动器 DRV8833 电机驱动器是德州仪器生产的一款紧凑高效的集成 H 桥驱动器 IC。它专为电机驱动应用而设计,为控制各种类型的电机提供多功能解决方案,包括两个直流有刷电机、一个双极步进电机、螺线管和其他电感负载。

DRV8833 的工作电压范围为 2.7V 至 10.8V,非常适合低压应用。它可连续提供每通道高达 1.2A 的电流,在短时间内,它可处理每通道高达 2A 的峰值电流。

为了确保可靠和安全的运行,DRV8833 包含多种保护功能,例如欠压锁定、过流保护和过热保护。如果发生任何这些事件,H 桥 MOSFET 将被禁用,以防止损坏驱动器和连接的电机。一旦故障情况得到解决,驱动器就会自动恢复正常运行。

此外,DRV8833 具有低功耗睡眠模式,当电机未主动使用时可启用省电功能,使其成为电池供电应用的节能选择。

总体而言,DRV8833 电机驱动器的紧凑尺寸、效率和保护功能使其成为各种电子项目中广泛电机控制应用的绝佳选择。

技术规格 以下是规格:

电机电压 2.7V – 10.8V 逻辑电压 兼容 3V 和 5V 连续输出电流 1.2A(每通道) 峰值输出电流 2A(每通道) 运动通道 2 保护功能 欠压锁定、过流和过热 欲了解更多信息,请参阅下面的数据表。

DRV8833 数据表 DRV8833 电机驱动器引脚排列 DRV8833 驱动器共有 12 个引脚,用于将其连接到外界。引脚排列如下:

让我们逐一了解所有引脚。

电源插针 DRV8833 电机驱动器模块有两个电源引脚:

VCC:此引脚用于连接驱动电机的电源正极。提供给此引脚的电压范围为 2.7V 至 10.8V。DRV8833 arduino 即使在低至 2.7V 的低电压下也能有效运行,因此非常适合低压项目,例如由单节锂聚合物电池和低压电机供电的项目。

GND:此引脚用于连接电源的地线,完成电路。在电机驱动器和所连接组件之间提供公共接地参考对于正常运行至关重要。

与某些电机驱动器为逻辑和电机电压设置单独的电源连接不同,DRV8833 使用单个电源连接,因为电机电压与逻辑电压匹配。这种设计简化了电机驱动器的接线和电源管理。

输出引脚 DRV8833 电机驱动器模块有四个输出引脚,即 OUT1、OUT2、OUT3 和 OUT4。这些输出引脚用于将电机连接到驱动器并控制其运行。它们的使用方法如下:

OUT1 和 OUT2:这些输出引脚用于控制电机 A。将电机 A 的正极和负极分别连接到 OUT1 和 OUT2。通过对控制输入引脚 IN1 和 IN2 施加不同的逻辑电平(高电平或低电平),可以控制电机 A 的速度和旋转方向。驱动程序文档中提供的真值表解释了这些输入如何影响电机的行为。

OUT3 和 OUT4:这些输出引脚用于控制电机 B。与电机 A 类似,将电机 B 的正极和负极分别连接到 OUT3 和 OUT4。通过向控制输入引脚 IN3 和 IN4 施加适当的逻辑电平,可以控制电机 B 的速度和旋转方向。

DRV8833 电机驱动器可处理 2.7V 至 10.8V 的电压,并可提供每通道高达 1.2A 的连续电流,峰值电流可达 2A,持续时间为几秒钟。这使得它适合驱动此电压和电流范围内的小型直流有刷电机。通过在输出引脚上使用适当的控制信号,您可以精确控制 Arduino 项目中所连接电机的运动和方向。

控制输入​​引脚 DRV8833 电机驱动器具有控制输入引脚,用于确定所连接电机的速度和旋转方向。这些控制输入引脚分为两组,每组负责控制单独的电机(电机 A 和电机 B)。以下是控制输入引脚的详细说明:

对于电机 A: IN1:此输入引脚控制电机 A 的旋转方向。要使电机 A 向前旋转,请向此引脚应用逻辑高电平 (5V) 信号。要使电机 A 反向旋转,请应用逻辑低电平 (接地) 信号。

IN2:此输入引脚还负责控制电机 A 的旋转方向。它补充了 IN1 的功能。要使电机 A 向前旋转,请向此引脚施加逻辑低电平(接地)信号。要使电机 A 反向旋转,请施加逻辑高电平(5V)信号。

对于电机B: IN3:此输入引脚控制电机 B 的旋转方向。要使电机 B 向前旋转,请向此引脚施加逻辑高电平 (5V) 信号。要使电机 B 反向旋转,请施加逻辑低电平 (接地) 信号。

IN4:此输入引脚还负责控制电机 B 的旋转方向。它补充了 IN3 的功能。要使电机 B 向前旋转,请向此引脚施加逻辑低电平(接地)信号。要使电机 B 反向旋转,请施加逻辑高电平(5V)信号。

通过改变施加到这些控制输入引脚的逻辑电平,您可以控制电机的旋转方向。例如,如果分别将 IN1 和 IN2 设置为 HIGH 和 LOW,电机 A 将向前旋转。如果反转逻辑电平,电机 A 将反向旋转。电机 B 也是如此,您可以通过相应地设置 IN3 和 IN4 来控制其旋转方向。

需要注意的是,控制输入在内部被拉低,这意味着如果您不连接它们,电机驱动器输出将默认禁用。此外,如果您想控制电机的速度,您可以在通常设置为 HIGH 的引脚上使用脉冲宽度调制 (PWM)。如果不需要速度控制,您只需将控制输入引脚设置为 HIGH 或 LOW 即可保持固定的速度或方向。

睡眠模式引脚 DRV8833 电机驱动器有一个休眠模式引脚,电路板丝印上标有“SLEEP”。此引脚控制 DRV8833 的休眠模式功能。当休眠模式引脚设置为特定逻辑电平时,它决定电机驱动器是处于低功耗休眠模式还是活动工作模式。休眠模式引脚的工作原理如下:

将 SLEEP 引脚设置为低电平: 当 SLEEP 引脚拉低(接地)时,DRV8833 进入低功耗休眠模式。在此模式下,电机驱动器进入最低功耗状态,从而有效地禁用 H 桥和栅极驱动电荷泵。所有内部逻辑均复位,内部时钟停止,所有输入均被忽略。 在睡眠模式下,电机驱动器实际上处于关闭状态,消耗的电量非常少。当电机不使用时,这尤其有用,可让您节省电量并提高电池供电或低功耗应用中的能源效率。 将 SLEEP 引脚设置为高电平: 当 SLEEP 引脚设置为逻辑高电平(连接到 VCC 或 5V)时,DRV8833 变为活动状态并开始运行。在此状态下,电机驱动器可以接收控制信号并根据需要操作连接的电机。 进入睡眠模式后,一旦睡眠模式引脚设置为高电平,DRV8833 需要一点时间(最多 1 毫秒)才能再次完全运行。

默认情况下,电路板上的 SLEEP 引脚通常被拉高,这意味着 DRV8833 在通电后处于活动状态并准备运行。但是,如果您想使用低功耗睡眠模式,可以将 SLEEP 引脚设置为低电平,使 DRV8833 进入睡眠模式并在不活动期间节省电量。

在 DRV8833 模块的背面,有一个焊接跳线(标记为 J1)。默认情况下,J1 处于关闭状态,这意味着板载上拉电阻连接到 SLEEP 引脚,使 DRV8833 保持启用状态。但是,如果打开 J1(断开跳线),则会启用片上下拉电阻,这意味着 DRV8833 将默认保持禁用状态。在这种情况下,您需要在需要时通过将 SLEEP 引脚设置为 HIGH 来手动启用电机驱动器。

故障检测引脚 DRV8833 电机驱动器有一个故障检测引脚,电路板丝印上标有“FAULT”。此引脚用作开漏输出,当发生某些故障情况时,DRV8833 芯片会将其驱动为低电平。故障检测引脚允许对这些故障情况进行外部监控,包括过流、过热或欠压事件。

故障检测引脚的工作原理如下:

正常运行: 在正常工作条件下,故障引脚保持浮动状态或悬空。这表示电机驱动器未检测到任何故障事件,并且运行正常。 故障情况: 如果发生以下任何故障情况,DRV8833 将驱动故障引脚至低电平,指示发生故障事件:

过流:驱动器检测到流过电机输出的电流过大,这可能是由于电机失速或其他问题引起的。 过热:驱动器感知到内部温度已超出安全工作范围,可能是由于长时间大电流工作或环境因素造成。 欠压:驱动器检测到电压降至低于规定的最低工作电压,表明存在潜在的电源问题。 外部上拉电阻: 为了使用故障检测引脚有效地监控故障情况,您需要在故障引脚和 VCC(或 5V)导轨之间连接一个外部上拉电阻。此电阻将确保引脚在未检测到故障时保持已知状态(即,在未发生故障时保持高电平)。 您可以使用启用了内置上拉电阻的微控制器输入或外部连接上拉电阻来实现这一点。 清除故障情况: 检测到故障情况后,电机驱动器将禁用 H 桥,故障引脚将被驱动为低电平。要清除故障并恢复正常运行,您必须解决故障原因,然后通过循环其睡眠模式引脚或提供适当的控制信号来重新启动电机驱动器。 监控故障检测引脚允许您实施保护措施并对故障事件做出相应的反应,确保各种应用中的电机安全可靠地运行。

电流限制 DRV8833 电机驱动器能够主动限制流过所连接电机的电流。通常,这是通过在 AISEN 引脚和地之间放置一个电阻来设置电机 A 的电流限制,并在 BISEN 引脚和地之间放置另一个电阻来设置电机 B 的电流限制来实现的。

然而,需要注意的是,本例中使用的特定 DRV8833 分线板将电流检测引脚(AISEN 和 BISEN)直接接地。因此,该特定分线板有效地禁用了 DRV8833 电机驱动器的限流功能。

实际上,这意味着如果没有合适的电阻来设置电流限制,电机驱动器可能无法主动限制流向所连接电机的电流。使用此特定的 DRV8833 arduino 分线板时,必须注意此限制,因为它可能会影响某些应用中电机驱动器的性能和安全性。

将DRV8833模块连接到Arduino 现在我们已经很好地了解了 DRV8833 模块,让我们继续将其连接到我们的 Arduino。

首先,我们需要为电机供电。DRV8833 模块上的 VCC 引脚负责为电机供电。根据电机的要求(范围从 2.7V 到 10.8V),您应该连接适当的电源。在我们的实验中,我们使用直流变速箱电机,通常称为“TT”电机,通常用于两轮驱动机器人。这些电机的额定电压为 3 至 12V,因此我们将外部 5V 电源连接到 VCC 引脚。

接下来,我们将 DRV8833 模块的控制输入(IN1、IN2、IN3 和 IN4)连接到 Arduino 上的四个数字输出引脚(10、9、6 和 5)。必须注意的是,所有这些 Arduino 引脚都支持 PWM,这样可以更精确地控制电机。

我们将一个电机连接到 DRV8833 模块上的端子 A(OUT1 和 OUT2),另一个电机连接到端子 B(OUT3 和 OUT4)。值得一提的是,您可以交换电机的连接,因为没有特定的正确或错误方法。

如果您希望监控故障情况,例如过流或过热,可以将 DRV8833 模块的 FAULT 引脚连接到 Arduino 上的数字引脚。但是,请记住使用外部上拉电阻或启用 Arduino 中此特定引脚的内置上拉电阻,因为它作为开漏输出运行。

最后,确保您的电路和 Arduino 共享一个公共接地,以便为电信号建立参考点。 DRV8833 驱动程序 Arduino 地线 地线 输入1 10 输入2 9 输入3 6 输入4 5

下表总结了 DRV8833 电机驱动器与 Arduino 接口的引脚连接:

enter link description here

评论