- A+
一键开关机电路仅使用一个按键,就可以实现开机和关机的功能。这个电路可以令产品更加简洁,好处是:
1、避免了繁杂的多个按键影响产品外观。
2、少一个按键,就可以把产品做得更小一点。
3、少一个按键就少花几分几毛钱,降低成本。
这里介绍一种软件配合硬件实现的一键开关机电路,这个电路非常经典:
整个电路以+5V供电举例。
1、在关机状态时:电路中各位置的电压大小如下。
可以看出,关机状态下,电路没有形成任何回路,没有产生电流,关机功耗为0。
2、按键被按下并且保持按下时:
①Q1的G极电压通过二极管D1和按键SW1,被拉低到约0.3V。0.3V是二极管D1的导通压降。
②于是MOS管Q1的Vgs = 0.3 - 5 = -4.7V,MOS管Q1被打开,VCC电压变为5V,并对MCU供电。
③MCU迅速跑起来后,软件令GPIO-Out输出高电平5V,打开三极管Q2,饱和导通的三极管Q2将MOS管Q1的g极拉到0V,Vgs变为0 - 5 = -5V。
3、按键松开后:
①MCU的GPIO-Out维持输出高电平5V。
②三极管Q2继续饱和导通,将MOS管Q1的g极拉到0V,维持其Vgs = 0 - 5 = -5V。
③MOS管Q1维持打开,令VCC电压维持为5V。
4、此时短按按键:
①MCU上电启动后要马上将GPIO-In设为输入,打开内部上拉电阻,此时GPIO-In对外表现为5V。
②按键SW1被按下后,GPIO-In由5V被拉到0.3V。
③MCU侦测到按键被“短按”,可以根据软件的设定对此作出各种响应。
5、长按按键关机:
①如果MCU侦测到按键是“长按”,则执行关机动作。
②MCU执行完关机动作,最后将GPIO-Out输出低电平0V,关闭三极管Q2。
③按键SW1松开后,MOS管Q1的g极变为5V,MOS管Q1被关闭。
④Vcc的电压变为0V,MCU断电,此时整个电路的功耗变为0。
关机后各点的电压又恢复为:
以上分析所用的例子,MCU是直接用电压值为5V的Vcc供电,并且GPIO带内置上拉电阻。
如果MCU不是用Vcc直接供电,而是:
①用由Vcc产生的+3.3V供电(意思是Vcc电压为0时,+3.3V电压也为0)。
②并且GPIO没有内部上拉电阻,则要加外部上拉电阻。
则电路变成这样:
这种经典的一键开关机电路需要软件配合,如果MCU死机了,或者程序跑飞了,不就关不了机了吗,怎么办?
1、那就让MCU异常了就赶紧重启:启用MCU内部的看门狗(Watch Dog)功能,或者加入外部看门狗。
2、产品设计成电源可插拔,即死机了就人工重新插拔电源,或拔出电池重新装上。
3、增加一个按键SW2:
这个按键SW2要隐藏在产品内部,用户无感知。产品外壳留一个小孔,死机后让用户用细铁丝通过小孔顶一下按键SW2,令三极管Q2的Vbe = 0,将三极管Q2关闭,从而令MOS管Q1关闭,达到对电压Vcc断电的目的。
这种做法,很多产品都有,下图是某产品的复位孔:
最后,关于电路的学习,希望大家,enjoy!
2020年5月25日 下午4:08 沙发
必须得评论一下,感谢大佬
2020年5月26日 上午8:47 1层
@逍遥 感谢支持,收到留言很开心(*^▽^*)
2021年3月27日 下午2:21 板凳
赞赞赞!我也是一名电子爱好者,但知识储备远不如作者,类似的问题我也想过没想到在这里找到了答案。感谢!
2021年3月30日 下午4:14 1层
@塔拉瓦 能帮到你,我也很开心^-^
2021年6月22日 下午10:31 地板
写得太好了,希望多更新。
2021年6月28日 下午10:57 1层
@小时锟斤拷 感谢支持,可关注“电路啊”微信公众号,及时获取更新推送哦!
2021年11月4日 下午6:01 4楼
你好,最近学习那个一键控制,我想问一下代码是怎么控制,我试了你的电路图,只能开机,不能关机,我想请教一下
2021年11月7日 上午8:54 1层
@星星无语 开机时,单片机的GPIO-Out输出高电平;关机时,单片机的GPIO-Out输出低电平。
2024年4月4日 下午3:05 5楼
这个GPIO-in有什么作用
2024年5月4日 下午6:29 1层
@-- GPIO-In用来检测外部状态,MCU需要将其设置为输入,并打开内部上拉电阻。