ARTICLE DETAIL

资讯详情

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

自锁电路原理与实现:继电器、三极管、芯片三种方案详解

自锁电路原理与实现:继电器、三极管、芯片三种方案详解 有一次我在工作室里做一个小型打气泵控制器卡在一个非常尴尬的问题上我想要的是一个“按一下启动之后就算手松开气泵也继续运行”的逻辑但手头只有普通点动按钮。第一次搭出来一松手就停我还以为是继电器坏了后来才明白我要的根本不是点动而是自锁电路——电工电子里最基础也最容易让新手绕晕的电路之一。自锁电路也叫自保持电路核心就一句话用输出信号把自己的输入“喂住”从而在触发信号撤掉之后继续保持导通。这篇文章不打算讲玄乎的理论直接按继电器方案、三极管方案、芯片方案三种主流做法全部走一遍每次都说清楚元件怎么选、参数怎么算、哪里容易踩坑新手照着我给的步骤搭面包板也能跑通。1. 自锁电路解决什么问题从“点动”到“保持”的分水岭1.1 先搞清楚点动和自锁的逻辑差异很多人学电路第一步接触的就是点动电路按下按钮继电器吸合负载工作松开按钮继电器释放负载停止。这个逻辑在电钻、电磨这类工具上是正确的因为你必须一直按着才安全。但到了气泵、水泵、风扇、设备电源这类场景需求就反过来了你不可能一直用手按着按钮等它把水打满、把气压充足。你要的是按一下启动设备自己持续工作再按一下停止或者由压力开关、浮球开关这些外部信号来停止。自锁电路和点动电路在硬件上的差别其实非常小往往就是“并联一个触点”还是“串联一个触点”的区别。但很多新手恰恰栽在这个地方把启动按钮和停止按钮的常开常闭搞反了或者把自锁触点接到了错误的引脚上结果要么是松手就停要么是一上电就自己启动。所以动手之前先拿一张纸把状态表列出来我觉得比啥都管用。1.2 用一张状态表理解“锁”的完整过程自锁电路看似只有几个元件但它的完整状态变化是很有逻辑的。以最常见的继电器自锁为例电源、启动按钮、停止按钮、自锁触点、继电器线圈这几个部分组成了一条回路。初始状态时线圈没电常开触点断开回路是断的。按下启动按钮回路接通线圈得电常开触点吸合此时松开启动按钮因为常开触点已经接通了电流改走这条“旁路”线圈继续保持得电。这就是自锁。整个过程一共有四拍按下启动、松开启动、按下停止、松开停止。按下启动时线圈得电松开启动时线圈因为自锁触点继续得电按下停止时停止按钮切断回路线圈失电松开停止时由于自锁触点也同步释放了回路保持断开电路回到初始状态。这四拍你只要用万用表量一遍继电器线圈两端的电压就能非常直观地看到状态变化比看一堆波形图更靠谱。1.3 自锁不是只用来接按钮的自锁电路最常见的应用是手动电机启停但它的逻辑远不止于此。把“启动按钮”替换成一个传感器触点把“停止按钮”替换成另一个传感器触点就可以变成自动控制电路。比如水塔自动上水低水位时浮球开关闭合相当于按下了启动键水泵开始打水高水位时浮球开关断开相当于按下了停止键水泵停转。再比如空气压缩机气压低于下限时压力开关闭合启动气泵气压达到上限时压力开关断开停机。这些场景本质上都是同一个自锁逻辑只是触发源从人手变成了传感器。理解了这层自锁电路就不再是一个孤立的练习而是很多自动控制项目的地基。2. 继电器自锁适合新手的第一版实现2.1 元件清单与接线顺序继电器自锁是我个人认为最适合新手首做的方案原因是它直观每一个零件都能看得见摸得着出了问题用万用表一段一段查就能找到。你需要准备的东西不多一个12V直流继电器带底座更好、一个12V电源、两个自复位按钮一个常开、一个常闭再加一小段导线。接线顺序我建议按电流流向来排别东接一根西接一根。先把电源正极接到停止按钮的一个引脚上停止按钮的另一个引脚接到启动按钮的常开端子上再从这个节点引出接到继电器常开触点的一个引脚上然后从常开触点的另一个引脚引线回到继电器线圈的正极脚。继电器线圈的负极脚直接回电源负极。这里的关键是启动按钮要和继电器的常开触点并联因为只有并联启动按钮按下之后触点的闭合才能替代按钮完成供电。停止按钮则是常闭串联在整条回路里按下去回路断自锁就解除了。2.2 常开触点并联在启动按钮上为什么就是“锁”新手最容易问的问题就是为什么把继电器的常开触点并联到启动按钮上就能实现自锁我换个说法你可能一下就通了继电器线圈一旦得电它自己的常开触点就会闭合这个闭合的触点相当于“一个看不见的手帮你一直按着启动按钮”。你松开按钮这只“手”还在按着所以线圈继续有电只有按停止按钮切断整条回路线圈断电“这只手”才松开。用一句话说就是用触点闭合的结果去维持线圈得电这个原因形成闭环正反馈。这就是自锁的本质。三极管方案和芯片方案里的“保持”本质也是这个只是把触点换成了晶体管或逻辑存储单元。2.3 选型与计算12V继电器的线圈电流怎么算继电器选型主要看三个参数线圈额定电压、线圈电阻、触点容量。给你一个常见的参考表普通小功率实验基本都够用。线圈电压典型线圈电阻线圈电流触点容量5V70Ω约70mA10A 250VAC12V400Ω约30mA10A 250VAC24V1600Ω约15mA10A 250VAC线圈电流用欧姆定律算就行I U / R。拿12V继电器来说400Ω线圈12 / 400 0.03A也就是30mA。这个数值非常有用如果你用三极管驱动继电器那么这个30mA就是三极管集电极必须要能通过的电流如果直接用单片机IO口驱动通常IO口最多给20mA那就不够必须加三极管或者用5V继电器。另一个判断方法是量线圈电阻五脚继电器上面线圈两个脚之间的电阻一般就是几十到几百欧姆常开触点两个脚之间是无穷大常闭触点两个脚之间是0Ω。焊接前先量一遍能避免很多低级错误。2.4 续流二极管没有它可能会烧驱动管继电器线圈本质是一个电感电感有一个特性电流不能突变。当三极管或触点切断继电器线圈的供电瞬间线圈会产生一个反向电动势这个电压可能高达几十伏甚至上百伏非常容易击穿驱动三极管或者在触点之间拉出电弧烧蚀触点。解决办法很简单在继电器线圈两端反向并联一个二极管也就是常说的续流二极管。二极管的阴极接线圈正极端接电源那端阳极接线圈另一端。正向导通时二极管截止不影响电路线圈断电瞬间反向电动势会让二极管导通电流通过二极管形成回路消耗掉电压被钳在0.7V左右后面的管子就安全了。续流二极管的选型也很随意低速继电器用1N4007足够体积大点也无所谓如果驱动频率高则用1N4148这类快恢复二极管。我做实验时曾经偷懒跳过这个二极管结果坏了两颗8050后来再也没省过这个元件。尤其是用三极管或芯片驱动继电器的方案里续流二极管是必须存在的不是可选项。3. 三极管与可控硅自锁没有继电器也要能实现3.1 一只NPN加一只PNP就能锁存如果你不想用体积大的继电器或者系统里本来就没有继电器就用三极管搭自锁。我常用的结构是一只NPN比如S8050加一只PNP比如S8550交叉反馈原理和可控硅的闩锁效应一模一样。整个电路只有几个电阻和两个三极管静态功耗极低适合长时间保持输出。完整接线我画成文本图方便你在面包板上对应插Vcc ──────── Q2(E) ────── Q2(C) ──── 负载 ──── GND │ ├──────── R2(10k) ──────── Vcc // Q2基极上拉默认截止 │ └──────── Q2(B) ────────── Q1(C) // Q1导通时拉低Q2基极 Vcc ── S1启动(常开) ── R1(10k) ──┬── Q1(B) ├── R3(10k) ── GND // Q1基极下拉默认截止 ├── Rf(10k) ── Q2(C) // 反馈维持锁定 └── S2停止(常开) ── GND // 按下短接基极到地Q1是NPNQ2是PNP。静态时Q1基极被R3拉到地Q1截止Q2基极被R2上拉到VccQ2也截止负载不通。按一下S1Vcc经过R1给Q1的基极提供电流Q1饱和导通集电极电压被拉低Q2基极电压跟着被拉低到接近0VQ2导通负载得电。此时Q2集电极也就是负载正端电压接近Vcc这个高电平经过Rf反馈到Q1的基极给Q1提供维持电流。于是松开S1之后Q1继续导通、Q2继续导通负载保持工作。按S2时Q1基极被直接短接到地Q1截止Q2基极被R2拉回高电平Q2截止负载断电反馈随之消失电路回到截止状态。3.2 参数计算与实测电压读数我实际用的参数是Vcc12VR1R2R3Rf10kΩ。启动瞬间按下S1时Q1基极电流大概是(12-0.7)/10k≈1.1mA。这个电流对于S8050来说足够让管子进入饱和导通。Q1饱和后集电极电压约0.2V把Q2基极拉低Q2导通负载上得到的电压是12V减去Q2的饱和压降约11.8V。这时候反馈电阻Rf上的情况是Q2集电极约11.8VQ1基极约0.7V压差约11.1V所以维持Q1基极的电流约(11.8-0.7)/10k≈1.1mA。整个电路的维持电流主要取决于负载三极管自身消耗很小。用万用表量节点电压能很清楚地看到工作状态未启动时Q1基极电压0VQ2集电极电压0V启动后Q1基极电压约0.7VQ2集电极电压接近电源电压停止后全部回到0V。如果你量到的Q1基极电压明显高于0.7V那大概率是Rf没有接对反馈没有形成锁定。另外如果负载是继电器线圈线圈两端仍要并联续流二极管方向是二极管阴极接Q2集电极一侧阳极接GND。3.3 可控硅直流小负载的自锁方案三极管自锁再往下简化一步就是直接用单向可控硅SCR。可控硅天生就有闩锁特性给门极一个触发脉冲一旦导通即使撤掉门极信号只要阳极电流超过维持电流它就会一直导通。这不是很像自锁吗直流小负载比如12V灯泡、蜂鸣器、小电机用MCR100-6或者BT169这类小电流可控硅就够。接线很简单电源正极经过负载到可控硅阳极可控硅阴极接GND启动按钮S1从电源正极经过一个1k电阻接到门极按一下给门极一个触发电流停止方案则是在主回路里串一个常闭按钮S2按下去切断阳极电流可控硅恢复截止。实际测试MCR100-6的触发电流很小1k电阻在12V下能提供大约10mA远超过触发阈值触发很可靠。但要注意可控硅的维持电流通常在几毫安到十几毫安负载电流太小可能会出现按一下就灭的情况这时候要么换维持电流更小的型号要么在负载上并联一个合适的小电阻或小灯泡来抬高电流。交流220V的负载我个人的建议是不要用纯TRIAC做自锁因为双向可控硅在每个交流过零点之后都会自然关断必须持续触发才能维持导通控制逻辑反而复杂这种场合老老实实用继电器触点更稳妥。4. 芯片方案555、RS触发器与D触发器的自锁变体4.1 RS触发器逻辑门交叉反馈才是自锁的“祖师爷”三极管和继电器的自锁本质上都在实现一个逻辑存储单元也就是RS触发器。两个或非门交叉反馈就能构成最简单的RS锁存器。把第一个或非门的输出接到第二个或非门的输入再把第二个或非门的输出接到第一个或非门的另一个输入两个门的剩余输入端分别作为S置位和R复位。S给高电平输出Q变为1R给高电平Q变为0S和R都为低时输出保持之前的状态。用S、R两个按钮配合下拉电阻就能做出一个标准的按键自锁电路。用通用逻辑门芯片比如74HC02来做适合那些本来就玩数字电路的场景输出电平可以直接进单片机或者驱动下一级逻辑。和继电器方案相比它没有机械触点、没有电弧、寿命长响应速度也快几个数量级。不过要注意S和R同时为高的状态是禁止的两个按钮不能同时按。芯片的输出驱动能力有限带继电器还是要加一级三极管驱动。4.2 CD4013双按钮自锁电路置位/复位思路实际做项目时我更爱用CD4013双D触发器因为它集成度高一个芯片就能解决自锁还能顺便提供反向输出。CD4013内部有两个D触发器每个都有异步的S端和R端。我们只用其中一个把S端接启动按钮R端接停止按钮按钮另一端接VccS和R各自接一个10k下拉电阻到地。D端和时钟端直接接GNDQ端输出。不按键时S、R都是低电平Q保持原状态按启动时S被拉高Q输出高电平松开后S恢复低Q仍然保持高按停止时R被拉高Q输出低之后也一直保持低。这个电路的接法非常干净不用像三极管方案那样考虑电流计算逻辑清清楚楚。Q端如果要驱动继电器接一级NPN三极管Q输出经过10k电阻接到8050的基极8050的集电极接继电器线圈线圈两端并续流二极管。整块电路调试起来很省心电压表量Q脚就能判断状态。要注意的是CD4013上电瞬间的初始状态并不确定因此R端最好加上电复位电路否则可能出现一上电就处于启动状态的情况。4.3 单按键一键启停T触发器与555双稳态如果面板上不想放两个按钮只想用一个按钮实现“按一下开再按一下关”那就可以把CD4013接成T触发器。做法很简单把反相输出端/Q接回D端按钮触发信号接到时钟端CLK。每来一个上升沿Q就翻转一次。按钮按一下CLK上升沿Q变高负载启动再按一下CLK又一个上升沿Q变低负载停止。原理就是D触发器在时钟边沿把D端的值锁存到输出而D接的是/Q所以每来一个时钟沿输出必然翻转。实测时要注意机械按钮的抖动一个按钮按下去可能产生多个上升沿结果状态翻来翻去。所以我通常在按钮到CLK之间加一级RC消抖按钮先经过一个10k电阻CLK端对地并联一个1uF电容时间常数10ms把抖动滤平再进D触发器。如果手头只有NE555也可以实现类似的双稳态锁存。把555的2脚通过10k上拉到Vcc启动按钮接在2脚和地之间6脚通过10k下拉到地停止按钮接在6脚和Vcc之间5脚对地接0.01uF防干扰电容4脚和8脚接Vcc1脚接地。按启动时2脚被拉低到1/3Vcc以下输出脚3输出高电平并保持按停止时6脚被拉高到2/3Vcc以上输出脚3输出低电平并保持。555的输出电流能到200mA左右小继电器可以直接驱动但为了保险我一般还是加一级三极管。5. 上电误触发、触点抖动、反峰电压做自锁必踩的三个坑5.1 上电误触发一接电就自己启动问题出在哪这类问题太常见了我自己的第一个自锁电路就栽在这上面。接通电源的瞬间继电器竟然自己吸合了必须按一次停止才能复位。排查下来主要有三个原因。第一三极管基极没有下拉电阻上电瞬间电路里的杂散电容、按钮线缆上的感应电压会给基极充一点电三极管放大倍数高的话这点微电流就被放大成了导通电流进而触发自锁闭环。第二芯片复位端没有处理好CD4013、555这类芯片在上电瞬间输出状态不确定如果没有明确的复位电路上电就是随机状态。第三供电电源上升斜率太缓电源从0慢慢爬到额定电压的过程中电路可能在一个特定的中间电压下误动作起电过程等同于一次假触发。解决方案从我自己的经验看至少要做两步。第一所有控制级都加明确的下拉或上拉电阻三极管基极接10k到地CD4013的S、R端接10k到地555的触发和阈值脚也都要有确定电平。第二需要上电复位的芯片在R端接一个RC复位电路1k电阻接到Vcc同时10uF电容从R端到地。上电瞬间电容电压为0R端短暂为高芯片强制复位电容充满后R端被电阻拉回低电平复位结束。这样上电后系统一定处于停止状态。对于MCU方案调试时还要把IO口初始化为低电平输出再驱动外部电路不然上电瞬间IO口默认高电平也会造成误触发。5.2 机械按钮抖动按一次变两次的问题这是一个特别容易忽略的坑。机械按钮内部的簧片在按下和释放时不会立刻稳定接触而是会在几毫秒到几十毫秒内来回弹跳等效于短时间内开关了好几次。对于继电器自锁来说触点抖动通常不致命因为继电器吸合本身有机械惯性几十毫秒的弹跳不会让触点掉下来。但在D触发器、计数器这类对边沿敏感的芯片方案里按钮抖动就非常致命按一下启动芯片可能收到多个上升沿状态连续翻转最后停在哪个状态完全随机。解决抖动有两种常用做法。一是硬件RC消抖按钮信号先经过10k电阻同时在芯片输入端并联1uF电容到地时间常数约10ms把弹跳的尖峰积分平滑掉芯片只看到一个干净的电平变化。二是软件消抖如果信号进单片机就在固件里延时10-20ms再去读引脚状态或者检测到电平变化后连续读三次确认。我个人的习惯是硬件软件都做成本又不高别把可靠性赌在一个地方。5.3 继电器线圈的反峰电压看不见的电涌杀手前面续流二极管章节提过一次反峰电压但这里还是想专门说一下因为这是新品最容易踩的坑。继电器线圈断电瞬间产生的反向电动势取决于电流的变化率实测峰值可以到几十伏甚至上百伏。这个高压如果直接打在驱动三极管的集电极和发射极之间8050这种小管子一次就击穿。更隐蔽的是它还会通过空间耦合干扰旁边的芯片导致单片机复位、逻辑混乱。处理的办法没有任何花样就是在继电器线圈两端反向并联续流二极管。别嫌多一个元件它值回票价。如果你用的是MOS管驱动续流二极管同样必须加而且有时候还需要在二极管支路上串一个小电阻来调节续流时间防止关断太慢导致继电器延迟释放。普通应用直接1N4007反向并联线圈就行。还有一个容易被忽略的细节二极管的位置要尽量靠近继电器线圈引脚接线太长本身就有寄生电感降低保护效果。5.4 调试时的测量方法与判断思路自锁电路出问题时别急着拆了重来。先用万用表电压档按“电源正极→停止按钮→启动按钮/自锁触点→线圈→电源负极”的顺序逐点量电压看哪个点电压和预期不符问题就锁定在那个节点。三极管方案里重点量三个点Q1基极电压、Q2基极电压、Q2集电极电压。上电不动作时这三个点都应该是0V按下启动后Q1基极约0.7VQ2基极约0.2VQ2集电极接近电源电压停止后全部归零。如果量到Q2集电极有电压但负载不工作检查负载本身或者续流二极管方向是否接反。调试时用可调稳压电源加限流比直接用电池或开关电源更安全。先把电流限制在100mA左右再接电路万一接线错误电流被限制住最多就是元件发热不至于烧一片。等确认状态逻辑正确了再放开限流。我在面包板上测试时每一步都用电压表确认过才往下接虽然慢但接线排错的时间反而少了很多。6. 自锁电路的工程化变形从手动按钮到自动保护6.1 用自锁做低压自动断开保护自锁电路的应用不止是按钮启停和比较器、传感器结合起来就可以做自动保护。我做过一个12V铅酸电池的欠压保护电池电压低于10.8V时自动断开负载并且断开之后不会因为电池电压回升又重新接通必须人工复位。硬件上用了LM393比较器电池电压通过电阻分压后接到比较器的反相输入端参考电压由TL431提供。正常时比较器输出高电平继电器自锁回路正常工作电池电压掉到阈值以下时比较器输出翻转为低电平强制切断继电器线圈的供电回路自锁随之解除。由于反馈已经断开电池电压恢复之后也不会自动吸合必须按一次复位按钮才能重新启动。这个“断开后锁死在断开状态”的行为其实就是自锁逻辑的反向应用工业上也叫欠压保持电路。分压电阻的计算根据你的阈值来想要10.8V动作TL431提供2.5V参考那分压点在电池10.8V时就应该等于2.5V。选一个电阻组合比如上电阻82k、下电阻24k10.8V时中点电压约10.8×24/(8224)2.45V低于2.5V比较器翻转12V时中点约2.72V高于2.5V比较器输出高。具体数值按你手头电阻调整调试时用稳压电源调电压看继电器的吸合释放点是否在预期的阈值附近。这个电路用在电动车电池、太阳能控制器前面能有效防止电池过放。6.2 浮球开关与压力开关把按钮换成传感器如果你做的项目是水塔自动上水或者气泵自动启停可以把自锁电路的两个按钮直接替换成传感器触点。以水塔上水为例低水位浮球开关接在启动按钮的位置高水位浮球开关接在停止按钮的位置。水位低时低水位浮球闭合相当于启动按钮按下水泵开始打水水位上来之后低水位浮球断开但自锁触点已经接替它维持线圈供电直到水位到达高水位高水位浮球断开回路切断水泵停止。这套逻辑和手动按钮自锁完全一样唯一要注意的是浮球开关属于机械触点接在直流感性负载回路里一样会有拉弧问题继电器线圈两端必须加续流浮球触点两端也可以并联RC灭火花电路延长开关寿命。传感器方案还有一个优势安全感。有些场景需要设备一旦运行就必须保持到某个条件才停不允许人为误触那么自锁可以作为硬件层面的保证。比如压力容器只有压力开关到达上限才能切断电路即使有人误按启动也只是重新建立压力不会造成泄压阀失效的后果。6.3 我踩过几次坑之后形成的几条实用习惯做自锁电路这两年我总结了几条习惯虽然看起来啰嗦但真的能少烧元件、少走弯路。第一动手前一定先画四拍状态表把“按下启动、松开启动、按下停止、松开停止”四种状态下每个关键点的电压写出来。画完再接线路成功率至少翻倍。第二所有的控制极都加确定电平的电阻该下拉就下拉该上拉就上拉宁可多花几分钱也不要让悬空引脚存在。第三继电器、可控硅这类感性或功率元件续流和吸收电路必须到位这不仅是保护元器件也是保护整个系统的稳定性。有一次我在花了一个小时排查一个“上电偶尔自启”的问题最后发现只是Q2基极的上拉电阻虚焊了导致上电瞬间Q2被杂散电流意外导通形成了自锁回路。那个教训让我彻底养成了焊完必须量一遍关键节点对地电阻的习惯。自锁电路不难但整个逻辑链路上的每一个元件都有它不可替代的位置任何一个悬空、虚焊、接反都会让你调试到怀疑人生。如果这篇对你的项目有帮助实际动手时建议先从继电器方案开始跑通一次完整的“启动-保持-停止”循环再尝试三极管和芯片方案。同一套自锁逻辑用三种不同方式各实现一遍你对“反馈”和“保持”这两个概念的理解会比看十遍教科书都扎实。后面如果再遇到需要软硬件配合的项目你会发现自锁思路已经嵌在你的设计直觉里了。
返回列表