微控制器是一种低功耗逻辑器件。它本身通常无法直接驱动继电器。可在微控制器与继电器之间接入单个N沟道MOSFET,以增加可用线圈电流并适配更高线圈电压的继电器。
本文探讨一种基于MOSFET的简易接口方案,使Arduino Nano Every能控制12V直流继电器。如图1所示,该设计还采用了CIT J104D2C12VDC.20S继电器和DMN67D8L-7 MOSFET。
请注意,本文是对以下多篇关联文章的高级概述:
关联原型制作文章描述了如何将SOT23封装的小型表面贴装MOSFET安装到适配板(如图1所示)。第二篇文章将主题扩展至节能技术领域。
图 1 : Arduino Nano Every通过表面贴装MOSFET驱动双继电器的实物图。Digilent Analog Discovery 在背景中可见。
微控制器有哪些局限性?
微控制器在电压和电流方面存在限制。本文涉及的Arduino Nano Every是5V直流设备,技术规格书标明其单引脚电流容量为15mA。
需知MOSFET是电压驱动器件,栅极电容充电完成后所需电流为零。因此,电压是制约我们低频继电器驱动电路的关键因素。
技术提示 :Arduino Nano Every是5V直流微控制器。就驱动MOSFET而言,其5V直流信号优于相关的3.3V直流微控制器。5V直流MOSFET栅极驱动信号足以使多数MOSFET完全导通,而3.3V直流可能无法满足要求。需仔细研究MOSFET数据手册以确认3.3V直流信号是否适用。该提示的引申含义是:对于低压微控制器,栅极电压标称值0.7V的BJT晶体管可能更适用。
MOSFET 有哪些局限性?
就本文应用而言,必须关注MOSFET的几个关键特性:
-
作为栅极电压函数的导通电阻
-
稳态电流
-
漏极相对于源极的最大电压
-
功率耗散
必须从系统角度考量这些参数,同时兼顾微控制器驱动信号及继电器的电压/电流需求。
继电器要求
所选CIT继电器为双刀双掷(DPDT)型,配备12伏直流、200毫瓦线圈。线圈电阻约720 \Omega,在12伏直流电源驱动下,继电器线圈电流约为17毫安。
MOSFET 适用性
选用MOSFET作为微控制器与继电器的接口元件。具体需要能接受5伏直流栅极信号、在12伏直流电源下可导通17毫安的MOSFET。本演示采用Diodes公司DMN67D8L-7型号。该SOT23封装器件参数完全满足需求。此MOSFET可切换230毫安电流, 耐压 V_{DS} 达60伏。
技术提示 :需特别注意MOSFET栅极电压规格。MOSFET是电压控制器件,栅极静电压控制漏极至源极通道。栅极电压幅度决定通道电阻,电压越高电阻越低。230毫安规格对应10伏直流栅源电压( V_{GS} )。当栅源电压( V_{GS} )降至7伏直流时电流降为190毫安,本项目5伏栅源电压( V_{GS} )直流工况下电流更低。虽未明确标注,5伏直流工作点电流值更小。因此当由5伏直流Arduino驱动时,DMN67D8L-7并未如预期般性能过剩。
MOSFET 数据手册复核
如前所述,必须仔细考量MOSFET工作点,特别是 V_{GS} 栅源电压。图2数据曲线表明DMN67D8L-7适用于本场景。
-
左侧曲线显示不同栅源电压 V_{GS} 下漏极电流 I_D 与漏源电压 V_{DS} 关系。绿点显示17毫安继电器电流下漏源电压 V_{DS} 极低。
-
右侧曲线呈现栅源电压 V_{GS} 与通道导通电阻的函数关系。Arduino的5伏直流可使MOSFET通道电阻降至约1.8 \Omega ,但该工作点接近曲线拐点。鉴于MOSFET通道电阻比720 \Omega 继电器线圈低两个数量级,仍可接受。
需注意电源电压波动与元件公差可能导致通道电阻增大。还需注意,若采用3.3伏直流微控制器,此设计将不可行。电阻过高会导致MOSFET自热,甚至无法激活继电器。
图 2 :DMN67D8L-7 MOSFET的工作曲线,显示预期工作条件。请注意5伏直流 V_{GS} 已足够,而3.3伏直流栅极驱动会产生难以接受的高电阻。
原理图
图3展示了MOSFET继电器接口的典型原理图。Arduino输出端用单刀双掷开关表示,将I/O引脚连接至地线或5伏直流电源。Arduino与MOSFET之间设有电流限制电阻。最后,继电器线圈连接在12伏直流电源与MOSFET漏极之间。请注意,5 伏直流的 Arduino( Arduino 开发板)与 12 伏直流电源共用同一接地端。
Arduino输出引脚上的100千欧电阻是精妙的保护装置。通常该电阻无作用,因Arduino输出引脚会数字连接至5伏直流母线或地线。但有时Arduino引脚可能设置为高阻抗状态,例如设备启动时。100千欧电阻执行下拉操作。它确保MOSFET仅在Arduino明确指令下才会关闭。注意该电阻位于1千欧电阻左侧。这是最大化栅极电压的必要措施——若100千欧电阻位于1千欧右侧会形成分压电路。
采用常见的1N4148小信号二极管作为续流二极管,用于MOSFET关闭时"捕获"线圈电压。乍看1N4148二极管对此应用可能显得过小。但结合继电器与MOSFET规格,200毫安的额定电流非常匹配。
技术提示 :续流二极管对防止高压尖峰的重要性再怎么强调都不为过。若无此二极管,继电器关闭时的感应反冲电压(续流电压)将达数百伏。这会损毁MOSFET。这是笔者付出惨痛代价获得的经验。我曾忘记安装二极管,导致继电器循环两次后永久开启,当众出丑。咔嗒开启,咔嗒关闭,再咔嗒开启,然后故障——永久导通。
图 3 :Arduino 微控制器、MOSFET 和继电器的代表性原理图。该原理图是使用 MultisimLive 构建的。
继电器的运行速度有多快?
机电继电器是一种速度较慢的装置。许多人认为这个速度是机械部件运动的函数。虽然这是事实,但线圈的感应特性会导致更大的延迟。回想一下,电阻电感 (RL) 电路的时间常数定义为:
\tau = \dfrac{L}{R}
这里R是线圈电阻,L是线圈电感。对于所选的继电器,电阻约为 720 \Omega ,电感在 2 H 附近。所得时间常数约为 3 毫秒。图 4 所示的电流波形(蓝色)支持了这一点。回想一下,电流将在一个时间常数内达到最终电流的约 64%。
电枢的运动使实际的稳态电流以及继电器线圈时间常数的概念变得复杂。最初,磁场环穿过电枢的气隙。随后,随着电枢闭合,气隙消除,导致线圈电感发生变化。结果是观察到继电器线圈电流的下降,如图 4 所示。
有关继电器磁场行为和继电器闭合时间的更多信息,请查看:
我们如何选择 MOSFET 栅极电阻?
现在我们了解了继电器线圈的性质,我们可以为 MOSFET 栅极选择合适的电阻。由于我们处理的是以毫秒为单位测量的 RL 时间常数,因此电阻器的值并不是特别重要。
在基于高速 MOSFET 的电路中,我们将专注于 MOSFET 栅极电容的快速充电和放电。在高速电路中,我们可能会选择 100 \Omega 范围内的电阻。通过快速将 MOSFET 转换出线性工作范围,从而提供清晰的开启和关闭信号,这将提供最高的效率。具有挑战性的平衡是保持低电阻以实现快速开关速度,而不会对驱动 MOSFET 栅极电容的微控制器逻辑施加压力。
本文介绍的慢速电路中,电流主要由继电器电感主导。几乎所有1k至 k\Omega 范围内的MOSFET栅极电阻,其响应速度都远快于漏极电流的变化。例如,数据手册显示该MOSFET的输入电容为22 pF。使用 k\Omega 栅极电阻时,计算得到的时间常数约为3微秒,比基于线圈的RL时间常数快1000倍。
技术提示 :看似简单的电路容易产生振荡。继电器驱动电路也不例外。由此产生的高频振荡会造成干扰,极端情况下会损坏MOSFET。合理布置栅极电阻是抑制这种振荡的方法之一。务必使电阻在物理位置上尽可能靠近MOSFET。图1展示了这一布局,电阻被尽可能贴近MOSFET栅极放置。
图 4 :导通指令(橙色)与对应的继电器电流波形(蓝色)。波形凹陷是由磁特性变化导致,衔铁闭合后消除了气隙。
高级节能运行模式
在实现基于MOSFET的微控制器与继电器接口后,我们可以探索高级运行模式。可采用脉宽调制(PWM)驱动器实现节能。为保持文章简洁,PWM相关内容已发布于此:
最后的思考
MOSFET天然适配5V直流微控制器。它使微控制器能驱动更高电流需求及超出其5V供电范围的设备。
全文我们明确区分了5V与3.3V微控制器的应用场景。特别提醒:如文中DMN67D8L-7这类MOSFET并不适合3.3V微控制器。未来我们或许会探讨具有低 V_{GS} 特性的MOSFET。其中某些型号甚至支持低至1.5V或1.2V的工作电压。
请点击此链接获取相关Arduino教育内容。



