风扇接在 IRF520 场效应管(MOSFET)模块上转一会儿就停,多半说明晶体管只开了一半。IRF520 的栅极需要大约 10 V 才能完全导通——Arduino 的 5 V 只能让它半开,损失的电压变成了热量,电机也就带不动了。绕过模块直接接电源能正常转,是因为风扇拿到了全额电压。
为什么风扇接在 IRF520 模块上会转着转着就停?
模块上的 IRF520 是一颗标准栅极功率 MOSFET,本来是设计给能提供 10 V 以上栅压的驱动电路用的。在 5 V 栅压下它只被部分增强:它不是一个闭合的开关,而更像一个半欧到几欧的电阻,串在你的风扇回路里。
这个电阻正好解释了症状:风扇低速时电流很小,所以能起转——但随着风扇加速,电流需求上升,半开 MOSFET 上的压降增大,电机端电压随之塌陷,直到风扇停转。发热是证据,不是诱因:从通电的第一刻起,缺失的那部分电压就一直在晶体管里烧成热量。旁路测试能转,证明电源和风扇都没问题——罪魁祸首是栅极驱动。
这并不代表这块模块是废品——在它的能力范围之内它确实好用,这篇指南要做的就是把这个范围老老实实画清楚。
零件清单
IRF520 的栅极阈值电压到底是什么意思?
IRF520 数据手册标注的栅极阈值电压是 2.0–4.0 V,测试条件是漏极电流仅 250 µA。Vgs(th) 是晶体管刚刚开始导通的电压,而不是它真正能用的导通电压——这是所有 MOSFET 数据手册上最容易被误读的数字。“阈值电压 2–4 V,我的 Arduino 输出 5 V,那肯定够”——这条推理正是眼前这起故障的来源。
真正该看的是导通电阻的标定条件:IRF520 那个著名的 0.27 Ω,是在 Vgs = 10 V 下测出来的,所有招牌参数——9.2 A 漏极电流、低损耗——全都以这个栅压为前提。5 V 下你拿到的是一个打了折扣、更烫的版本;3.3 V 下几乎什么都拿不到。
| 栅极电压(Vgs) | 数据手册怎么说 | 你的电机实际感受 |
|---|---|---|
| 2–4 V(阈值) | 刚刚开始导通——测试电流 250 µA | 基本没用;顶多抖一下 |
| 3.3 V(ESP32 引脚) | 不少个体只是刚过阈值 | 又弱又不稳,全看个体抽签 |
| 5 V(Uno 引脚) | 典型转移曲线约 2 A——高阈值个体远低于此 | 小负载能用;损失的电压变成热 |
| 10 V(标定条件) | 导通电阻最大 0.27 Ω,9.2 A 额定值才成立 | 卖点宣传的完整性能 |

5 V 栅压下模块到底能开关多大电流?
IRF520 模块的商品页通常印着“0–24 V、最大 5 A”——这些数字描述的是接线端子和晶体管的极限规格,不是 5 V 栅压能兑现的东西。严谨的供应商会直接降额说明:IRF520 并不完全兼容 5 V 逻辑,而在 3.3 V 逻辑下合理的上限约为 1 A。
在 5 V 栅压下,把连续电流预算放在 1 A 左右才算实在。数据手册的典型转移曲线显示 5 V 栅压下约 2 A——但那是“典型个体”的数字,考虑到 2.0–4.0 V 的阈值电压分布,高阈值个体的表现远低于此;按 1 A 做预算,整袋里最差的那颗也能过得舒服。在这个预算之内它是个称职的小开关;往印刷的 5 A 硬推,FET 就得耗散那些它根本没拿到足够栅压去避免的功率。

IRF520 模块自带续流二极管吗?
IRF520 模块存在好几个版本:有的在负载两端带了保护二极管,更多的只有 MOSFET、两个电阻和一个指示 LED。要检查的是你手上这块,不是商品图:断电并断开所有连接后,用万用表二极管挡正反两个方向测负载端子(V+ 和 V−)——一个方向读数约 0.2–0.7 V 说明装了二极管(肖特基类型读数在低端);两个方向都开路就是没装。
不管有没有,只要负载是有刷电机或风扇,都请外加一个续流二极管——一颗普通的 1N4007 级整流二极管跨接在电机两端,带色环的一端(阴极)朝向 V+。它给电机断电瞬间的电压尖峰一条安全的泄放回路,不让尖峰反复锤打晶体管——物理原理和我们继电器模块安全指南里的线圈二极管一模一样。
IRF520 模块怎么接 Arduino Uno?
IRF520 模块分三个区域:3 针排针(SIG、VCC、GND)接控制信号,一对接线端子接负载电源,另一对接负载——具体哪对是哪对,以你这批板子的丝印为准。这套接法针对普通的两线直流风扇或电机;四线电脑风扇需要把 PWM 打在它专用的控制线上。
| 模块端子 | 接到 | 说明 |
|---|---|---|
| SIG | Uno D9 | 支持 PWM 的引脚,用于调速 |
| VCC | Uno 5V | 排针供电,给指示电路用 |
| GND(排针) | Uno GND | 必须共地——不共地就没法开关 |
| 电源端子对(VIN / GND) | 负载电源 + / − | 小 140 电机用 5V 台式电源 |
| 负载端子对(V+ / V−) | 电机红线 / 黑线 | 续流二极管跨接电机两端,色环朝 V+ |
这颗 3V 140 小电机是绝佳的第一个负载,远在预算之内;由于它是 3 V 电机接在 5 V 电源上,程序里限制了 PWM 占空比,让它的等效电压保持在合理范围。软启动斜坡则避免堵转电流冲击把共用电源拉垮、让 Uno 复位。
// IRF520 模块 + Arduino Uno——PWM 电机调速,带软启动
// 控制端:SIG -> D9,VCC -> 5V,GND -> GND(与负载电源 GND 共地)
// 负载端:小直流电机接 V+ / V-,续流二极管跨接电机两端(色环朝 V+)
const int MOTOR_PIN = 9; // PWM 引脚
const int MAX_PWM = 150; // 3V 电机接 5V 电源的占空比上限(150/255 x 5V = ~2.9V)
// 只有电机额定电压与电源电压一致时才用 255
void setup() {
pinMode(MOTOR_PIN, OUTPUT);
// 软启动:缓慢升速,避免堵转电流冲击
// 把电源拉垮、让开发板掉电复位
for (int duty = 0; duty <= MAX_PWM; duty++) {
analogWrite(MOTOR_PIN, duty);
delay(15); // 从静止到巡航大约 2 秒
}
}
void loop() {
analogWrite(MOTOR_PIN, MAX_PWM); // 巡航
delay(4000);
for (int duty = MAX_PWM; duty >= 0; duty--) { // 缓慢停下
analogWrite(MOTOR_PIN, duty);
delay(10);
}
delay(2000);
for (int duty = 0; duty <= MAX_PWM; duty++) { // 缓慢重启
analogWrite(MOTOR_PIN, duty);
delay(15);
}
}
想在自己动手接线之前,先看看这块模块带动真实负载的样子:

手上是 3.3 V 开发板,或者负载更大,怎么办?
用 ESP32 或任何 3.3 V 开发板直接驱动 IRF520 模块,是选错了零件——3.3 V 只能勉强够到阈值电压的抽签线,我们的 ESP32、ESP8266 与 Uno 对比就讲过这道逻辑电平分水岭。教科书式的解法是换一颗逻辑电平 MOSFET(IRLZ44N 一类),它在 5 V 栅压下就能达到额定导通电阻。
对 3.3 V 开发板、以及任何超出 1 A 预算的负载,继电器模块才是实在的答案:它的光耦输入用 3.3 V 就能可靠触发,触点也完全不理会栅极那套物理——我们的自动浇花系统就是这样开关水泵的。要是你想要 PWM 调速,那就留着 IRF520 模块,用 Uno 这类 5 V 逻辑的板子来驱动它。
我们从真实客户那里见过的常见错误
本文标题里的那桩谜案。一位客户的反馈大意是:“IRF520 fan spins then stops (bypass ok)”(IRF520 风扇转了就停,直连正常)。旁路测试做得很聪明——它排除了风扇和电源的嫌疑。解法:这台风扇的电流超出了模块在 5 V 栅压下的预算,于是改走继电器路线。
用 3.3 V 开发板驱动 SIG。电机只会抖一下、嗡嗡响,或者这块模块能用、另一块一模一样的却不能用——这是阈值电压抽签的表现,不是板子坏了。换 5 V 逻辑的开发板,或者改用继电器模块。
没有共地。负载单独供电、排针 GND 却没接回 Uno,开关就会时灵时不灵、半死不活。栅极电压是相对模块地测量的;把两个地连起来。
按印刷的 5 A 做预算。那个数字的前提是 Arduino 根本给不出的栅极驱动——5 V 栅压下按 1 A 左右规划,并留意散热片温度。
省掉续流二极管。不装也许能跑上几个星期,但每一次断电尖峰都是一次赌博,而一颗二极管就能把这份赌注清零。
常见问题
IRF520 模块能配 ESP32 或 ESP8266 用吗?
不能直接用。3.3 V 栅压下 IRF520 只是勉强过了阈值,表现因个体而异,电流能力也大打折扣。改用继电器模块(它的光耦输入 3.3 V 就能工作),或者换 5 V 逻辑的开发板来驱动模块。
为什么只带一个小电机,我的 IRF520 模块还是发烫?
5 V 栅压下晶体管只是部分导通,会实实在在地压掉一部分电压并把它耗散成热。温热属正常;烫到不能碰说明负载超出了 5 V 栅压的预算——减小电流,或者改用继电器。
IRF520 模块能做 PWM 调速吗?
能——这正是它的看家本领,普通继电器做不到。在 PWM 引脚上用 analogWrite;在 Uno 上,D9 引脚的频率约为 490 Hz,电机在这个频率下发出轻微啸叫属正常现象。
小风扇小电机也真的需要续流二极管吗?
装上。有刷电机每次断电都会反踢一个电压尖峰,而 PWM 意味着 Uno 上每秒几百次断电。IRF520 不装往往也能活下来,但一颗整流二极管能把“往往能活”变成“有保护”。
IRF520 模块是个烂产品吗?
不是——它是一块不错的板子,只是商品页的数字常常偏乐观。在它的能力范围内(5 V 信号、1 A 左右、PWM 调速、电机加续流二极管)它便宜、简单、可靠。超出这个范围,就改走继电器路线。
最后更新:2026年8月。有问题?WhatsApp 联系我们。



Arduino Uno Compatible SMD UNO R3 with Type B Cable - ATMEGA328P with CH340G-Microcontroller Project
IRF520 MOSFET Driver Module PWM Output Power Control for Arduino Raspberry Pi DC Motor Control
3V 140 DC Motor Small Electric Motor for DIY Projects Arduino Robotics RC Car Robot Smart Car