PWM 简单直流电机速度控制
作者:Jeremy Cook
在电子学中,最基本的操作之一是直流电机速度控制。这里,我们将从基础开始,了解其含义:向MOSFET或专用驱动器发送PWM信号。该信号直接控制直流电机速度,使用比控制器本身能够产生的更高的电流(通常还有电压)。
简单的LED PWM控制
Jeremy Cook | 由示波器指示的脉冲外部LED
PWM(即脉宽调制)通过重复脉冲的不同时间长度来模拟模拟电压输出。在这种设置中,周期被定义为完成一个开/关循环所需要的时间。占空比通常用百分比表示,是开时间与关时间的比率。
一个5伏特信号,具有50%的占空比,将会模拟出一个2.5V的模拟信号。1毫秒的周期会每秒产生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共地的外部电压源会更好。建议安装一个 flyback二极管 来解决多余的感性负载。
L293D 电机驱动器:建立直流电机控制电路的简便方法
Jeremy Cook | 说明: L293D Motor Driver
Jeremy Cook | U4 GND 引脚内部连接
关于L293D驱动器的注意事项
在使用最后那段代码时(使用12V VCC2输入且没有电容),我最后使一个Raspberry Pi Pico板失效了。良好的做法是使用电容来平衡电源和逻辑输入。L293D确实提供了内部箝位能力来处理感性负载,因此不需要外部续流二极管。此过程中有几个潜在的原因,但这应作为一个提醒,确保硬件在离开工作台后能够满足实际应用的要求。
即插即用 – 还是完全定制化?
您的直流电机控制电路设计可能不会永远停留在面包板上。从这里开始,有两条不同的路径:
对于更高级的原型开发或一次性设计,可以使用电机扩展板和开发板,它们添加了像L293D这样的驱动器,作为直流电机、步进电机、舵机等的即插即用解决方案。Arduino Motor Shield 也许是最知名的,与Arduino Uno的形式因子兼容。如果您希望继续使用RP2040平台,Maker Pi RP2040可能是控制电机和其他设备的一个极佳即插即用解决方案。
在另一端,可以将电机控制器设计直接集成到您自己的印刷电路板设计中。这种集成为您提供了几乎无限的设计自由,允许您在实现Maker Pi RP2040的一些功能的同时,省略不需要的部分。您还可以将电路板布局为适合您应用的完美物理形式因子。
Jeremy Cook | 用于电动机和其他负载控制的MOSFET。由于电磁线圈充当电感器,续流二极管仍然是一个好主意。
文章标签