ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

单片机驱动继电器:三极管开关电路原理、选型与参数计算

单片机驱动继电器:三极管开关电路原理、选型与参数计算 1. 从一只烧掉的继电器说起三极管开关电路到底在解决什么问题很多人第一次用单片机点继电器板子一上电继电器“啪”地吸合了心里美滋滋。结果跑了两天继电器开始抽风偶尔不吸合偶尔吸合了不断开再后来单片机某个IO口直接没反应了。拆下来一测IO口已经击穿继电器线圈也发黑。这个场景我见过太多次问题几乎都出在同一件事上把单片机的IO口当成了能直接驱动负载的电源。单片机IO口是什么水平以最常见的51和STM32为例单个IO口的拉电流和灌电流通常在10mA到20mA这个量级整颗芯片所有IO口加起来的总电流也有上限一般不超过100mA到150mA。而一只常见的5V小型继电器线圈电阻大约70Ω到120Ω算下来吸合电流在40mA到70mA之间。你让一个只能扛20mA的口去推一个要70mA的负载短期可能“能亮”长期就是慢性自杀。更别说继电器线圈是感性负载断开瞬间会产生反向电动势那个尖峰电压直接怼回IO口击穿是迟早的事。所以三极管开关电路的核心使命就一句话用单片机的小电流去控制三极管的大电流通断让继电器线圈的电流走三极管的集电极-发射极回路而不是走单片机IO口。单片机只负责给三极管基极一个很小的控制电流剩下的脏活累活交给三极管。这就是所谓“开关电路”的本质——三极管工作在饱和区和截止区而不是放大区。这里有个概念必须先掰清楚不然后面全乱。三极管有三个工作区截止区、放大区、饱和区。做开关用我们只要它待在截止区和饱和区绝不希望它停在放大区。截止区就是基极没电流集电极和发射极之间断开相当于开关断开饱和区就是基极给了足够大的电流集电极和发射极之间压降很小相当于开关闭合。放大区是基极电流和集电极电流成比例的那个区域做开关时如果停在放大区三极管上会消耗大量功率发热甚至烧毁。那怎么保证它一定进饱和区这就引出了后面要反复算的一个关键参数基极电阻。很多人随手拿个10k电阻往基极一接就完事结果三极管没进饱和压降大、发热、继电器吸合无力。这个电阻不是随便选的它决定了基极电流够不够把三极管推进饱和。再说回继电器本身。继电器是典型的感性负载线圈通电时储存磁场能量断电瞬间磁场坍缩会产生一个反向电压方向和你加在线圈上的电压相反幅值可能达到电源电压的好几倍。这个反向尖峰如果不处理第一个遭殃的是三极管第二个就是单片机。所以继电器线圈两端必须并联一个续流二极管给这个反向电流一条泄放通路。二极管的方向是阴极接电源正极阳极接三极管集电极那一端正常工作时二极管反偏不导通断电瞬间它正偏导通把线圈里的能量以电流形式泄放掉。这套电路看起来简单三极管加两个电阻加一个二极管但它涉及的细节非常多三极管选NPN还是PNP、基极电阻怎么算、续流二极管选什么型号、继电器用5V还是12V、单片机IO口高电平有效还是低电平有效、要不要加光耦隔离、电源怎么规划。每一个选择背后都有明确的工程理由选错了就是上面说的烧板子结局。这篇文章就是把这套电路从原理到选型到计算到实测完整地拆一遍。适合刚接触单片机驱动外设的初学者也适合做了几年但一直“照着抄图”没深究过参数的老手。我会把每个电阻、每个二极管、每个三极管的选型逻辑讲清楚让你下次画图的时候不是“抄一个”而是“算一个”。2. NPN还是PNP三极管开关电路的两套拓扑与选型逻辑2.1 低边开关与高边开关的本质区别三极管开关电路有两种基本拓扑低边开关和高边开关。低边开关是把三极管放在负载和地之间负载一端接电源正极另一端接三极管集电极三极管发射极接地。高边开关是把三极管放在电源和负载之间负载一端接三极管另一端接地。低边开关用NPN三极管高边开关用PNP三极管。为什么因为NPN三极管的导通条件是基极电压比发射极电压高约0.7V。低边开关里发射极接地基极只要给一个高于0.7V的电压就能导通单片机IO口输出3.3V或5V高电平正好满足。高边开关里发射极接电源正极基极电压必须比电源正极还高0.7V才能导通单片机IO口根本给不出比电源还高的电压所以高边开关用PNPPNP的导通条件是基极电压比发射极低0.7V单片机IO口输出低电平就能把它拉低导通。那实际做单片机驱动继电器选哪种绝大多数情况选低边开关配NPN。原因有三个第一NPN便宜好买2N3904、S8050、2N2222满地都是第二单片机IO口输出高电平驱动NPN的逻辑很直观高电平吸合、低电平断开第三低边开关的发射极接地基极回路的参考点就是地计算简单。但低边开关有个“缺点”负载的一端永远接着电源正极。对于继电器来说这不是问题因为继电器线圈是浮空的不关心哪端接地。但如果你的负载是某种需要一端严格接地的设备低边开关就不合适了得用高边开关。不过继电器场景下低边开关是绝对主流。2.2 NPN开关电路的完整电流路径拆解把NPN低边开关的电流路径画清楚后面算参数才不会乱。整个电路有两条回路第一条是基极控制回路单片机IO口 → 基极电阻Rb → 三极管基极 → 三极管发射极 → 地。这条回路的电流就是基极电流Ib它由IO口电压、基极电阻、以及基极-发射极之间的PN结压降决定。第二条是集电极负载回路电源正极 → 继电器线圈 → 三极管集电极 → 三极管发射极 → 地。这条回路的电流就是集电极电流Ic也就是继电器线圈的工作电流。三极管的电流放大关系是Ic β × Ib但这个公式只在放大区成立。做开关时我们要让它进饱和区饱和区的特征是即使Ib继续增大Ic也不再明显增大因为Ic已经被外部负载继电器线圈电阻限制住了。这时候实际的Ic由电源电压除以线圈电阻决定而Ib要足够大大到让三极管“愿意”提供这么大的Ic。工程上的经验判据是让Ib大于Ic/β的3到5倍。比如继电器线圈电流Ic是70mA三极管β取100那Ic/β 0.7mA我们让Ib至少是2.1mA到3.5mA。这个“过驱动”系数是为了保证三极管在温度变化、批次差异、β离散的情况下依然稳稳进饱和区。β这个参数本身离散性很大同一型号不同个体可能差两三倍所以不能按β的典型值算要按最小值算再留余量。2.3 PNP高边开关什么时候才用PNP高边开关在继电器驱动里不是主流但有一种场景会用到多路继电器共地。如果你的系统里所有继电器的另一端必须接同一个地而你又想用单片机控制低边开关会让继电器一端接电源这在某些接线方式下不方便。这时候用PNP高边开关继电器一端统一接地另一端接PNP集电极PNP发射极接电源基极通过电阻接单片机IO口。PNP的基极控制逻辑是反的IO口输出低电平基极被拉低PNP导通IO口输出高电平基极和发射极之间压差不够PNP截止。所以用PNP的时候单片机程序里的逻辑要反过来写或者加一级NPN做电平取反。这也是为什么很多人不喜欢用PNP——逻辑反着来容易搞混。还有一种情况是用PMOS管做高边开关。MOS管是电压驱动栅极几乎不吃电流驱动起来比三极管省心导通电阻也小大电流场景下发热少。但MOS管的栅极阈值电压和驱动电压要匹配5V单片机直接驱动某些PMOS可能驱不饱需要加一级三极管做栅极驱动。这个属于进阶内容后面单独讲。对于绝大多数单片机驱动继电器的场景NPN低边开关是首选简单、便宜、逻辑直观、资料多。下面所有计算和实操都以NPN低边开关为主线。3. 基极电阻不是随便选的从继电器线圈电流反推Rb3.1 先算继电器线圈电流这是所有计算的起点选基极电阻之前必须先知道继电器线圈要多少电流。这个数据在继电器的数据手册里叫“线圈额定电流”或“线圈电阻”。以最常见的5V继电器为例比如松乐SRD-05VDC-SL-C线圈电阻是70Ω那么线圈电流就是5V除以70Ω约71.4mA。如果是12V继电器比如SRD-12VDC-SL-C线圈电阻通常是400Ω电流就是12V除以400Ω等于30mA。这里有个坑继电器数据手册上的“线圈电阻”是在20°C下测的线圈发热后电阻会上升。铜的电阻温度系数大约是0.4%/°C如果线圈温度从20°C升到60°C电阻会增加约16%电流相应下降。所以算基极电阻的时候要按最大电流来算也就是冷态电阻对应的电流这样热态时也能保证饱和。还有一个坑继电器有“吸合电压”和“释放电压”两个参数。吸合电压通常是额定电压的70%到80%释放电压是额定电压的10%到50%。这意味着继电器在额定电压的75%时就能吸合但吸合电流也相应降低。不过我们设计电路时不能按吸合电压算要按额定电压算保证最坏情况下也能可靠吸合。把常见继电器的线圈参数整理一下方便对照继电器型号额定电压线圈电阻20°C线圈电流吸合电压释放电压SRD-05VDC-SL-C5V70Ω71.4mA3.75V0.5VSRD-12VDC-SL-C12V400Ω30mA9.0V1.2VHK4100F-DC5V5V120Ω41.7mA3.75V0.5VJQC-3FF-5VDC5V70Ω71.4mA3.75V0.5V从表里可以看出5V继电器的线圈电流普遍在40mA到70mA之间12V继电器在30mA左右。这个电流就是三极管集电极要承受的电流。3.2 基极电阻的计算公式与过驱动系数基极电阻Rb的计算公式推导一遍。基极回路的电压方程是Vio Ib × Rb Vbe其中Vio是单片机IO口的高电平电压Ib是基极电流Vbe是三极管基极-发射极导通压降硅管大约0.7V。所以Rb (Vio - Vbe) / IbIb怎么定前面说了Ib要大于Ic/β的3到5倍。取Ic 71.4mAβ最小值取1002N3904的β范围是100到300S8050是85到300取100保守那么Ic/β 0.714mA。取4倍过驱动Ib 2.86mA。代入公式Vio 5V假设单片机IO口输出5VVbe 0.7VRb (5 - 0.7) / 2.86mA 4.3V / 0.00286A ≈ 1503Ω所以Rb取1.5kΩ左右。实际常用值有1kΩ、1.5kΩ、2kΩ、4.7kΩ、10kΩ。1.5kΩ不是标准E24系列值最接近的是1.5kΩE24有1.5k或者1.6kΩ。实际选1.5kΩ或1kΩ都可以1kΩ会让Ib更大一些饱和更深但IO口负担稍重。如果单片机是3.3V系统Vio 3.3VRb (3.3 - 0.7) / 2.86mA 2.6V / 0.00286A ≈ 909Ω取1kΩ或910Ω。注意3.3V系统下基极电阻不能太大否则Ib不够。这里有个关键经验很多人用10kΩ基极电阻算一下Ib (5 - 0.7) / 10k 0.43mA而Ic/β 0.714mAIb连Ic/β的1倍都不到三极管根本没进饱和停在放大区集电极-发射极压降可能有好几伏继电器线圈上电压不够吸合无力三极管还发热。这就是“继电器偶尔不吸合”的典型原因。3.3 基极电阻的功率与IO口电流校验选完阻值还要校验两件事电阻功率和IO口电流。电阻功率基极电阻上的功耗是Ib² × Rb。Ib 2.86mARb 1.5kΩ功耗 (0.00286)² × 1500 ≈ 0.012W远小于常见的1/4W0.25W电阻随便一个0603贴片电阻都能扛。所以功率不是问题。IO口电流Ib就是IO口要提供的电流2.86mA。51单片机单个IO口灌电流能力约10mA到20mASTM32约20mA2.86mA完全在安全范围内。但如果用1kΩ电阻Ib 4.3mA也没问题。用470Ω的话Ib 9.1mA接近51单片机的上限了不推荐。注意有些单片机IO口有“高电平输出能力弱、低电平灌电流能力强”的特性比如51单片机的P0口作为普通IO时是高阻态需要外接上拉电阻才能输出高电平。这种情况下如果用P0口驱动NPN上拉电阻和基极电阻会形成分压实际基极电压可能不够。解决办法是换用P1、P2、P3口或者用低电平有效的PNP拓扑。3.4 一个完整的计算实例把上面的步骤串起来做一个完整实例目标用STM32F103的PA0口3.3V输出驱动SRD-05VDC-SL-C继电器5V70Ω线圈。第一步算线圈电流Ic 5V / 70Ω 71.4mA。第二步定Ibβ取100Ic/β 0.714mA取4倍过驱动Ib 2.86mA。第三步算RbRb (3.3 - 0.7) / 2.86mA 909Ω取标准值910Ω或1kΩ。第四步校验IO口Ib 2.86mA用910Ω时是2.86mA用1kΩ时是2.6mASTM32 IO口能扛。第五步选三极管Ic 71.4mAVceo要大于5VS8050的Ic最大500mAVceo 25Vβ 85-300完全够用。2N3904的Ic最大200mA也够。第六步选续流二极管1N4148的反向耐压100V正向电流200mA够用。但1N4148是信号二极管正向压降稍大用1N4007也行更皮实。这套参数实测下来继电器吸合干脆三极管Vce饱和压降约0.1V到0.2V发热几乎感觉不到。4. 续流二极管与继电器线圈的反向电动势不装它就是在赌命4.1 反向电动势是怎么产生的继电器线圈是电感电感的基本特性是“电流不能突变”。当三极管从饱和导通突然切换到截止时线圈里的电流试图维持原来的方向继续流动但三极管已经断开了电流没有通路于是线圈两端会产生一个反向电压试图“击穿”空气或三极管来维持电流。这个反向电压的幅值由电感的自感电动势公式决定V -L × di/dt。di/dt越大关断越快反向电压越高。实际测量中5V继电器线圈在无续流二极管的情况下关断瞬间的反向尖峰可以达到几十伏甚至上百伏。这个电压加在三极管集电极和发射极之间如果超过三极管的Vceo集电极-发射极击穿电压三极管就击穿了。即使没击穿这个尖峰也会通过集电极-基极的结电容耦合到基极再传到单片机IO口把IO口打坏。4.2 续流二极管的接法与选型续流二极管的接法阴极接电源正极阳极接三极管集电极。也就是二极管和继电器线圈并联但方向是反的。正常工作时线圈上端是电源正极下端是三极管集电极接近地电位二极管阴极接电源正极阳极接集电极二极管处于反偏状态不导通。关断瞬间线圈下端产生正向尖峰相对于电源正极是负的二极管正偏导通把线圈电流泄放回电源正极。选型要点反向耐压要大于电源电压一般选100V的1N4148或1000V的1N4007都行。1N4148是100V/200mA1N4007是1000V/1A。对于5V或12V继电器1N4148足够。正向电流要大于线圈电流。1N4148的200mA大于71.4mA够用。恢复时间1N4148是快速恢复二极管反向恢复时间4ns适合高频开关。1N4007是普通整流二极管恢复时间较慢但继电器开关频率很低通常几Hz到几十Hz1N4007完全够用。封装直插用DO-351N4148或DO-411N4007贴片用SOD-123或SMA。提示续流二极管的方向绝对不能接反。接反了正常工作时二极管正偏导通电源直接通过二极管短路到地轻则烧二极管重则烧电源。画图时反复确认二极管阴极有横杠的那端接电源正极。4.3 不加续流二极管的实测后果我做过一个对比实验同一块板子同一颗S8050同一只5V继电器一组加1N4148续流一组不加。不加的那组继电器断开时用示波器看集电极波形尖峰达到68V三极管Vceo是25V已经超了。连续开关100次后三极管击穿集电极-发射极短路继电器一直吸合不断开。加续流的那组尖峰被钳位在5.7V左右电源电压加二极管正向压降三极管Vce只有0.15V连续开关1000次没有任何异常。这个实验说明续流二极管不是“可选优化”而是“必须”。省一个几分钱的二极管代价是烧几毛钱的三极管和可能烧几块钱的单片机。4.4 续流二极管之外的保护RC吸收与TVS续流二极管是最基本的保护但在某些对关断速度有要求的场景续流二极管会让继电器释放变慢因为线圈电流通过二极管泄放时电流衰减速度由L/R决定释放时间可能延长到几毫秒。如果系统要求快速释放可以在续流二极管之外并联一个RC吸收电路比如100Ω电阻串联0.1μF电容或者用TVS二极管瞬态电压抑制二极管来钳位。不过对于绝大多数单片机控制继电器的应用释放时间几毫秒完全不影响续流二极管就够了。RC吸收和TVS属于“锦上添花”不是必须。5. 光耦隔离什么时候需要什么时候是过度设计5.1 光耦隔离解决的是什么问题光耦隔离的核心作用是电气隔离把单片机的地和继电器驱动电路的地完全分开两边没有直接的电气连接信号通过光传递。这样做的好处是继电器那边的干扰、尖峰、地弹噪声不会传到单片机这边。什么时候需要光耦隔离几种典型场景继电器控制的负载是220V交流电而单片机是5V直流供电。虽然继电器本身已经提供了线圈和触点之间的隔离但线圈驱动电路和单片机共地如果触点那边有高压窜入比如继电器绝缘失效可能通过线圈耦合到单片机。加光耦可以再加一层隔离。继电器驱动电路的电源和单片机电源是分开的两边地电位不同直接连接会有地环路电流。工业环境电磁干扰强需要彻底隔离。什么时候不需要光耦隔离如果继电器控制的只是低压直流负载比如12V电机、LED灯单片机电源和继电器电源是同一个共地没有问题那光耦就是多余的。加光耦会增加成本、占用PCB面积、增加功耗还多一个器件可能失效。5.2 光耦隔离继电器驱动电路的完整结构光耦隔离的典型电路分两级第一级单片机IO口 → 限流电阻 → 光耦发光二极管 → 地。单片机输出高电平光耦发光内部光敏三极管导通。第二级光耦光敏三极管 → 基极电阻 → 驱动三极管基极 → 驱动三极管发射极 → 地。光耦导通时光敏三极管把驱动三极管的基极拉低或拉高控制驱动三极管通断。注意光耦的输出侧需要独立的电源和地不能和单片机共地否则隔离就失效了。通常用一个小型DC-DC隔离模块或者独立的5V电源给光耦输出侧和继电器供电。光耦选型常用的有PC817、EL817、TLP521。PC817的电流传输比CTR是50%到600%意思是发光二极管流过1mA电流光敏三极管能流过0.5mA到6mA。设计时要按CTR最小值算保证光敏三极管能提供足够的基极电流给驱动三极管。5.3 光耦电路的参数计算以PC817为例CTR最小值50%。假设驱动三极管需要Ib 2.86mA那么光敏三极管要能提供2.86mA。光敏三极管的电流来自光耦输出侧的电源通过一个上拉电阻或直接接驱动三极管基极。如果光敏三极管直接接驱动三极管基极那么光敏三极管的集电极电流就是驱动三极管的基极电流。光耦发光二极管的电流IfIf × CTR(min) ≥ Ib所以If ≥ 2.86mA / 0.5 5.72mA。取If 8mA到10mA留余量。限流电阻Rin (Vio - Vf) / IfVf是光耦发光二极管正向压降约1.2V。Vio 3.3V时Rin (3.3 - 1.2) / 8mA 2.1V / 0.008A 262Ω取270Ω或330Ω。光耦输出侧的上拉电阻如果光敏三极管集电极通过上拉电阻接5V发射极接地那么光敏三极管导通时集电极电压被拉低到接近0V驱动三极管基极被拉低。但NPN驱动三极管需要基极高电平才能导通所以这种接法适合PNP驱动三极管。如果用NPN驱动三极管光耦输出侧应该这样接光敏三极管集电极接5V发射极通过电阻接驱动三极管基极同时驱动三极管基极通过下拉电阻接地。光敏三极管导通时发射极电流流向驱动三极管基极驱动三极管导通。这个计算稍微绕实际设计时可以直接用“光耦输出侧接一个NPN三极管做射极跟随器”的经典电路或者用光耦直接驱动一个小型继电器模块模块内部已经集成了驱动三极管和续流二极管。5.4 光耦隔离的代价与取舍光耦隔离的代价多一个光耦几毛钱到一块钱、多一个限流电阻、多一个上拉或下拉电阻、需要隔离电源如果严格隔离的话、PCB面积增加、功耗增加光耦发光二极管持续耗电。对于 hobby 级项目如果继电器控制的是低压负载我个人的建议是不加光耦把续流二极管和基极电阻算对可靠性已经足够。对于工业级或高压负载光耦隔离是值得的。不要为了“看起来专业”而加光耦也不要为了省几毛钱而在高压场景省光耦。6. 从原理图到实物焊接、实测与常见故障排查6.1 元器件清单与选型对照把前面所有选型汇总成一张表方便直接抄作业元器件型号/参数作用备注单片机STC89C52/STM32F103控制核心任意有GPIO的单片机均可驱动三极管S8050/2N3904开关NPNIc≥100mAVceo≥25V基极电阻1kΩ5V系统/910Ω3.3V系统限流1/4W或0603贴片续流二极管1N4148/1N4007泄放反向电动势阴极接电源正极继电器SRD-05VDC-SL-C执行开关5V线圈70Ω电源5V/1A供电继电器吸合瞬间电流较大电源要够6.2 焊接顺序与注意事项焊接顺序建议先焊矮的元件电阻、二极管再焊三极管最后焊继电器。继电器体积大最后焊方便调整位置。注意事项三极管引脚识别S8050的TO-92封装平面朝向自己从左到右是发射极、基极、集电极。2N3904也是E-B-C。但有些型号是E-C-B焊之前一定查数据手册。二极管方向1N4148的黑色横杠是阴极接电源正极。继电器引脚5脚继电器有常开、常闭、公共端、线圈两端。用万用表测通断确认。电源去耦在继电器线圈电源端并联一个100μF电解电容和一个0.1μF陶瓷电容吸收吸合瞬间的电流冲击。6.3 上电实测步骤第一步不焊继电器只焊三极管和基极电阻单片机输出高电平用万用表测三极管集电极对地电压。如果接近0V说明三极管饱和导通如果接近5V说明三极管截止如果中间值比如2V说明没进饱和检查基极电阻是否太大。第二步焊上继电器和续流二极管单片机输出高电平听继电器是否有清脆的“啪”声。用万用表测继电器常开触点是否闭合。第三步单片机输出低电平继电器应释放常开触点断开。第四步连续开关100次摸三极管温度。如果温热40°C以下正常如果烫手60°C以上说明没饱和或继电器电流超了。6.4 常见故障与排查表故障现象可能原因排查方法解决方案继电器不吸合基极电阻太大测三极管Vce若1V则未饱和减小基极电阻继电器不吸合三极管引脚焊错对照数据手册测引脚重新焊接继电器不吸合电源电流不够测电源电压吸合瞬间是否跌落换大电流电源加去耦电容继电器吸合后不断开三极管击穿断电测三极管C-E是否短路换三极管加续流二极管三极管发热严重未进饱和测Ib和Ic算β减小基极电阻单片机IO口损坏反向尖峰窜入测IO口对地是否短路加续流二极管加光耦继电器偶尔误动作电源干扰示波器看电源纹波加去耦电容分开供电6.5 一个真实的排查案例有一次帮朋友修一块板子现象是继电器吸合正常但断开后偶尔会自己再吸合一下。用示波器看三极管基极波形发现断开瞬间基极有一个正向尖峰。原因是续流二极管焊反了阴极接到了集电极阳极接到了电源正极。这样正常工作时二极管正偏导通电源通过二极管和继电器线圈短路电源电压被拉低但还没烧是因为电源有短路保护。断开时二极管反偏没有续流作用反向尖峰通过集电极-基极电容耦合到基极导致三极管瞬间再导通一下。把二极管方向调过来问题消失。这个案例说明续流二极管的方向错误不一定会立刻烧但会引入奇怪的间歇性故障排查起来很费时间。7. 进阶话题MOS管驱动、多路继电器与电源规划7.1 用MOS管替代三极管做开关MOS管做开关比三极管有几个优势电压驱动栅极几乎不吃电流驱动功耗极低导通电阻Rds(on)可以做得很小大电流下发热少开关速度快。但MOS管也有坑栅极阈值电压Vgs(th)和驱动电压要匹配5V单片机直接驱动某些逻辑电平MOS如AO3400、IRLZ44N可以但驱动标准MOS如IRF540需要10V栅压5V驱不饱。用NMOS做低边开关的电路单片机IO口 → 栅极电阻100Ω到1kΩ→ MOS栅极栅极和源极之间接一个下拉电阻10kΩ防止悬空时误导通。继电器线圈接电源正极和MOS漏极MOS源极接地。续流二极管同样需要。栅极电阻的作用是限制栅极充电电流防止IO口过载同时抑制栅极振荡。下拉电阻保证单片机复位或IO口高阻时MOS可靠截止。7.2 多路继电器共电源的电流预算一个系统里如果有多个继电器电源电流要算总账。比如8路5V继电器每路71.4mA8路同时吸合就是571mA。如果电源只给500mA电压会被拉低继电器吸合无力。所以电源要按“所有继电器同时吸合”的最大电流来选再留30%余量。8路5V继电器建议用5V/2A电源。另外多路继电器同时断开时续流二极管泄放的总电流也很大电源端要加足够大的储能电容比如1000μF吸收这些能量。7.3 继电器触点的负载类型与灭弧继电器触点这边也有讲究。触点控制的负载分阻性、感性、容性。感性负载电机、电磁阀断开时触点会产生电弧缩短继电器寿命。容性负载大电容吸合瞬间会有浪涌电流可能粘接触点。对于感性负载触点上并联RC吸收电路100Ω 0.1μF或压敏电阻。对于容性负载串联限流电阻或NTC热敏电阻。对于直流负载触点并联续流二极管注意方向阴极接电源正极。对于交流负载触点并联RC吸收或压敏电阻。这些是继电器触点侧的保护和线圈驱动电路是两回事但做完整设计时都要考虑。7.4 电源规划单片机电源与继电器电源要不要分开如果单片机电源和继电器电源是同一个5V继电器吸合瞬间的电流冲击会在电源线上产生压降和噪声可能让单片机复位或IO口误动作。解决办法继电器电源和单片机电源用同一个电源但在继电器电源入口加LC滤波电感电容或磁珠电容隔离噪声。用两个独立的5V电源一个给单片机一个给继电器两边地通过0Ω电阻或磁珠单点连接。用光耦隔离彻底分开。对于1到2路继电器同一个电源加去耦电容通常够用。对于4路以上建议分开供电或加滤波。8. 写在最后几个我踩过的坑和常用参数速查做继电器驱动电路这些年踩过的坑总结下来就几条第一条基极电阻宁小勿大。10kΩ是万恶之源1kΩ到2kΩ是安全区。算不准就先用1kΩ测三极管Vce小于0.3V就说明饱和了。第二条续流二极管一个都不能省。不管继电器多小不管开关频率多低必须加。1N4148几毛钱烧一颗单片机几十块。第三条电源电流要按最坏情况算。继电器吸合瞬间电流比稳态大多路同时吸合电流叠加电源不够就各种玄学故障。第四条三极管引脚别焊错。S8050和2N3904的E-B-C顺序一样但有些国产管是E-C-B焊之前花10秒查手册省得后面花10分钟排查。第五条光耦不是必须的但高压场景必须有。控制220V负载时光耦加隔离电源别省。常用参数速查5V继电器线圈电流40mA到70mA12V继电器线圈电流30mA左右基极电阻5V系统1kΩ到2kΩ基极电阻3.3V系统910Ω到1.5kΩ续流二极管1N4148或1N4007三极管S8050、2N3904、2N2222去耦电容100μF电解 0.1μF陶瓷这套电路从原理到参数到实测基本覆盖了单片机驱动继电器的所有关键点。下次画图的时候别急着抄别人的图先算一遍线圈电流再算一遍基极电阻把续流二极管画上基本就不会出大问题。
返回列表