011���������������,软件配合实现的“一键开关机电路”

一键开关机电路仅使用一个按键,就可以实现开机和关机的功能。这个电路可以令产品更加简洁,好处是:

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死机了怎么办

这种经典的一键开关机电路需要软件配合,如果MCU死机了,或者程序跑飞了,不就关不了机了吗,怎么办?

1、那就让MCU异常了就赶紧重启:启用MCU内部的看门狗(Watch Dog)功能,或者加入外部看门狗。

2、产品设计成电源可插拔,即死机了就人工重新插拔电源,或拔出电池重新装上。

3、增加一个按键SW2:

软件配合实现的“一键开关机电路”

这个按键SW2要隐藏在产品内部,用户无感知。产品外壳留一个小孔,死机后让用户用细铁丝通过小孔顶一下按键SW2,令三极管Q2的Vbe = 0,将三极管Q2关闭,从而令MOS管Q1关闭,达到对电压Vcc断电的目的。

这种做法,很多产品都有,下图是某产品的复位孔:

软件配合实现的“一键开关机电路”

 

四、能坚持看到这里真不错呢

最后,关于电路的学习,希望大家,enjoy!

软件配合实现的“一键开关机电路”

在C语言中'/011'怎么理解他是合法常量_百度知道 - Baidu011 | Board Game | BoardGameGeek术后疼痛药HTX-011获FDA突破性疗法认定_新浪医药新闻 ...MT-011: Find Those Elusive ADC Sparkle Codes and ...《骑马与砍杀》v1.011破解补丁下载 _ 游民星空下载基地 ...NIKE耐克官方舰店男鞋跑步鞋秋冬季新款Tanjun缓震运动鞋 ...骑马与砍杀 v1.011简体汉化补丁 - 游民星空下载中心 ...yzw.xisu.edu.cnSTAR CCM+13.02.011破解版安装教程-百度经验网站后台删除或修改文档时错误代码Server.MapPath() ���� ‘ASP 0174 : 80004005关于allure生成报告后无法自动打开的问题并报“‘allure‘ �����ڲ����ⲿ���Ҳ”jdbc连接数据库报错:The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents ...mysql连接出错,报The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents ...Java编译时出现����,黑色菱形里面有问号,为什么?解决AndroidStudio报错显示���的问题the server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one time ...The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one time ...Java 掉坑之The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than...使用JDBC连接MySql时出现:The server time zone value ‘�й���׼ʱ��‘ is unrecognized or ...Java.sql.SQLException: The server time zone value ‘й���׼ʱ��‘ is unrecognized or represents...generate (default-cli) on project mall: The server time zone value ‘�й���׼ʱ��‘ is ...java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is unrecognized or ...在使用springboot+jpa+mysql时出现The server time zone value ‘�й���׼ʱ��‘ is unrecognized ...项目启动报错:java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is ...关于sql异常The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than...FreeBSD 6 手��� MySQL5 (最佳化)(ZT)InvalidConnectionAttributeException: The server time zone value '�й���׼ʱ��' is unrecog-...连接mysql报错java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is ...androidx.fragment.app.Fragment�޷�ת��Ϊandroid.app.Fragment fragmentTransaction.replace报错连接mysql数据库报错java.sql.SQLException: The server time zone value '�й���׼ʱ��' is ...ADODB.Connection ���� ‘800a0e7a’ win7 IIS运行ASP常见问题及解决方法java?e7?a8??e9?a8ӿ解决error: cannot create �� Illegal byte sequencejava.sql.SQLException The server time zone value ‘�й���׼ʱ��‘....及数据库时间与本地时间不...flume采集出现com.alibaba.fastjson.JSONException: syntax error, pos 1, line 1, column 2��-�vscode中文注释显示和输出乱码怎么解决��(04)Spring MVC之Get方式传参访问Controller,返回json串出现菱形问号(��ӳɹ�)乱码,解决方法。allure‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���