作者:Jeremy Cook
电子学中最基本的操作之一是直流电机速度控制。在本文中,我们将从基础知识来看看这意味着什么:向 MOSFET 或专用驱动器发送 PWM 信号。该信号直接控制直流电机的速度,使用的电流比控制器本身产生的电流更高(通常还有电压)。
简单的 LED PWM 控制
Jeremy Cook | 外部 LED 与示波器指示的脉冲
PWM(即脉宽调制)通过重复不同时间长度的脉冲来仿真一个模拟电压输出。在此设置中,周期定义为完成一个开/关周期所需的时间。占空比通常用百分比表示,是导通时间与关断时间的比值。
占空比为 50% 的 5 伏信号会产生模拟的 2.5 V 模拟信号。1ms 的周期将产生每秒 1000 次(或 1000 Hz)的开/关状态变化,定义为 PWM 信号的频率。PWM 控制适用于直流电机和其他缓慢变化的负载。真正的模拟输出在不同的情况下更可取,如音频再现。
我们将使用运行 CircuitPython 的 Raspberry Pi Pico 来探索产生 PWM 信号的原理。作为非常简短的介绍,请加载此处找到的代码。该代码将使板载 LED 从全强度,即 65,535 (2^16 – 1) 交替变为 4095 (2^12 -1),不到原始值的 1/10。人们可以观察到光的变化,尽管很难将观察到的光输出与数值联系起来。
MOSFET 电机控制电路
Jeremy Cook | MOSFET 直流电机控制电路
使用 MOSFET (FQP30N06L) 的控制方法与 LED 基本相同。我们下一个实验的代码可以在此处找到。通过一个小电阻 (~100Ω) 将控制输出连接到 MOSFET 的增益引脚。增加一个 10k 电阻接地,在无输入时拉低电阻。电机的正极引线连接到 MOSFET 漏极,而 MOSFET 源极则接地。
VBUS 引脚最初提供正电压;然而,使用与 Pico 共同接地的外部电压源通常会更好。实施反激式二极管也有助于处理杂散电感负载。
L293D 电机驱动器:构建直流电机控制电路的简单方法
Jeremy Cook | 图片说明:L293D 电机驱动器
MOSFET 是杰出的通用器件,但如果您想要控制速度和方向,或者您需要管理多个电机,事情就会变得非常复杂。幸运的是,现成的电机控制器 IC 可以应对这一挑战,包括此处使用的古老的 L293D 驱动器。布线要求可从数据表中确定。我用来将其连接到我的 Raspberry Pi Pico 的方法如下图所示:
Jeremy Cook | U4 GND 引脚内部连接
此设置的数字(开/关)旋转代码可在此处找到,它使电机全力前进和后退,中间有停顿。该 PWM 代码以特定的占空比初始化电机,逐渐加速,然后停止。然后,从另一个方向上升,并在重复该序列之前再次停止。
关于 L293D 驱动器的注意事项
在使用最后一位代码时(采用 12V VCC2 输入,无电容),我最终禁用了一个 Raspberry Pi Pico 板。良好的做法是使用电容来均衡电源和逻辑输入。L293D 提供内部箝位功能来处理感性负载,因此不需要外部反激式二极管。这种情况的发生有几个潜在的原因,但这应该作为一个提醒,以确保硬件在离开工作台后能够满足现实世界的要求。
即插即用 – 还是完全定制?
您的直流电机控制电路设计不可能永远停留在试验板上。从这里开始,有两条不同的路径:
对于更高级的原型设计或一次性设计,可以使用电机屏蔽和开发板,添加 L293D 等驱动器,作为直流电机、步进器、伺服系统等的即插即用解决方案。Arduino 电机屏蔽可能是最著名的,与 Arduino Uno 外形尺寸兼容。如果您想继续使用 RP2040 平台,Maker Pi RP2040 可能是控制电机和其他设备的优秀即插即用解决方案。
另一方面,可以将电机控制器设计直接集成到您自己的印刷电路板设计中。这种集成为您提供了近乎无限的设计自由,例如,允许您实现 Maker Pi RP2040 的一些功能,同时舍弃您不需要的功能。您也可以根据您的应用,以完美的物理外形布局您的电路板。
PWM 电机和负载控制
Jeremy Cook | 用于电机和其他负载控制的 MOSFET。由于螺线管充当电感,反激式二极管仍然是一个好主意。
本文介绍的通用 PWM 控制原理是合理的,可用于各种负载;然而,所介绍的硬件是作为本文的演示而快速组装的。对于最终设计,您需要仔细考虑每种特定情况,以及 Arrow 提供的规格和数据表信息。通过适当的 PWM 直流电机控制器设置,您的设备可以多年无故障运行。
无论您的设计如何发展,Arrow 都将为您提供微控制器、MOSFET、电机驱动器以及其他所需器件,让您的 PWM 直流电机速度控制器成为现实!