我的 MOSFET 操作的螺线管电路破坏了我的 Arduino 输入

电器工程 Arduino 电源 场效应管 螺线管
2022-01-22 05:24:17

我制作了一系列 PCB 来为一些使用外部电源的电磁阀供电。我使用 Arduino 作为栅极信号用BS170 MOSFET切换它们。我基于Jason S 的解决方案

这是我的电路的示意图: MOSFET操作阀电路

在测试 PCB 时,我注意到它们中的大多数都可以正常工作,但有些则不能。没问题,可能是焊接的东西。

但是,那些有缺陷的确实设法破坏了两个 Arduino 数字引脚!一方面,我得到一个 5 V 的恒定电压,当我向它发送一个 HIGH 信号时,另一个输出 0.2 V,当我发送一个 LOW 信号时输出 0.5 V。奇怪的东西。

所以我猜有故障的电路以某种方式导致(部分)16 V 流过 Arduino,破坏了它们。

在这种情况下,如何保护 Arduino 免受过高电流的影响?

我知道齐纳二极管,但我不知道如何放置它们来保护输入。

技术信息:

4个回答

您的阀门在 12V 时的额定电流为 500mA。如果您提供 16V 电压,它将消耗超过 500mA 的电流。假设它是一个电阻,它将消耗 667mA。

您使用的 MOSFET 的绝对最大电流为 500mA 连续电流。任何高于绝对最大额定值的东西都可能损坏设备。这可能就是您看到可靠性问题的原因。

MOSFET 没有保证的故障模式,所以我并不惊讶它会以这种方式损坏 Arduino 输出。

正如 Jason 在链接答案中提到的那样,BS170 是 MOSFET 的糟糕选择。你需要一个更好的。在额定电流为几安培的 TO-220 外壳中选择一个。您还需要确保 Vgs 的额定电压为 5V 逻辑电平驱动。

你用的是哪个二极管?

理论上电路没问题。
需要在实践中进行改进。

在所有具有感性负载的电路中,添加一个 12V (> Vgate_drive) 的栅源齐纳二极管确实是一个非常好的主意。在漏极电压发生意外或极端变化期间,这可以防止栅极被“米勒电容”耦合到漏极而破坏性地驱动。

将齐纳二极管安装在 MOSFET 附近。
将阳极连接到源极,将阴极连接到栅极,这样齐纳二极管通常不会导通。

10k 栅极驱动电阻(如图所示)很大,会导致 MOSFET 缓慢关闭和开启以及更多的功率耗散。这在这里可能不是问题。

在此应用中,所选的 MOSFET 非常边缘化。
Digikey 现货供应的好得多的 MOSFET 包括:

对于 26c/10 Digikey IRLML6346 SOT23 pkg,30V,3.4A,0.06 Ohm,Vgsth = 1.1V = 栅极阈值电压。

NDT3055 48c/10 TO251 带引线 60V,12A,0.1 欧姆,Vgsth = 2V

RFD14N05 71c/10 TO220 50V,14A,0.1 欧姆,2V Vgsth。


添加

适用于 3V 栅极驱动的 MOSFET:

系统只是破坏了我更长的答案:-(。所以 - MOSFET 必须具有不超过 2V 的 Vth(阈值电压)才能与 3V3 电源控制器正常工作。
建议的 FET 均不符合此要求。
它们可能会在一段时间后工作当前负载,但驱动不足且损耗过大,并且该解决方案不能很好地扩展到更大的负载。
似乎 IRF FETS 在相关尺寸范围内,具有 Vth (of Vgsth) <= 2 伏特除了 IRF3708 之外,所有的 4 位数字代码都以 7 开头.

OK FET 包括 IRFxxxx,其中 xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470

还会有其他的,但所有建议的似乎都具有 Vth = 4V 或 5V,并且在此应用中处于边缘或更差。

Vgsth 或 Vth 需要至少比实际栅极驱动电压小一伏,理想情况下是小几伏。

您的阀门额定电流约为 500 mA。BS170 的额定电流也为 500 mA,但这是销售宣传数字。我会在这里使用(更高)额定值的 FET,通过 TO92 的 500mA 电流让我感到紧张。而且你有一个 1k 的栅极电阻,这在大多数情况下是个好主意,但它可能会导致糟糕的 FET 切换太慢而无法承受 0.5A。

你用的是什么二极管?它的额定电流必须为 0.5A,所以 1n4148 不行。我不确定,但它实际上可能会超过 0.5,因为该值的移动部分可能会导致比普通线圈更大的尖峰。

在您的图片中,您的值返回电流流过 Arduino 接地连接。我会把它变成一颗星星:将 arduino 接地直接连接到电源。或者更好:使用光耦将大电流电路与 Arduino 隔离(并使用两个独立的电源)。

你的 MOSFET 上应该有一个栅源电阻,这样如果 Arduino 输出为高阻抗,栅极就不会上浮。由于螺线管电源和 Arduino 电源是分开的,因此可能会发生这种情况(除非您通过设计保证 Arduino 始终首先打开。)

MOSFET实际上离螺线管这么远吗?如果是这样,它应该移动得更近。移动它,使排水管直接插入原型板条,红线连接到螺线管和二极管。然后将源极短连接到 GND 条。最好有一个较长的门信号回路(在低功率下)而不是一个带电的长回路。您也可以将 Arduino 移到更靠近螺线管的位置,使所有这些回路保持较短。