1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
标准版 开机自动关机电路
简介:验证电路实现了按键开机,单片机控制关机功能。
开源协议: GPL 3.0
在本文中,我们将向您展示如何构建锁存电源开关电路,也称为自动断电电路。您可以使用此电路自动关闭 ESP32、ESP8266、Arduino 或任何其他微控制器。
该电路允许您在微控制器不执行任何任务时完全切断电源。换句话说,一旦微控制器完成执行任务,它就会通过软件自行关闭。这是使电池在您的电子项目中持续更长时间的好方法。
以下电路图显示了锁存电源开关电路(自动断电电路)图。
右侧编号为 1、2 和 3 的端子应连接到您的微控制器板。
1)当您按下开关或闭合电路时,有电到达2N3904晶体管的基极。因此,2N3904 被拉低,将 MOSFET 的栅极 (G) 拉至 GND。
2) P 沟道 MOSFET 在其栅极相对于源极为负时导通。当您按下按钮时,MOSFET 的栅极被拉至 GND,允许电流流向 VIN 引脚,这将为微控制器供电。只要 MOSFET 的栅极被拉至 GND,就会发生这种情况。3)为了在释放按钮后保持 MOSFET 的栅极拉至 GND,我们通过微控制器的 GPIO 发送一个 HIGH 信号。当我们发送一个 HIGH 信号时,有功率到达晶体管的基极。4) 因此,我们确保 MOSFET 的栅极被拉至 GND,电流流向 VIN 端子为我们的微控制器供电。5)当我们想要关闭电路时,我们只需将GPIO设置为LOW即可。发生这种情况时,没有功率到达晶体管的基极,因此 MOSFET 不会让电流流向 VIN 引脚,因此没有功耗。我对电路进行的微小改动,
/********************************** (C) COPYRIGHT *******************************
* File Name : main.c
* Author : WCH
* Version : V1.0.0
* Date : 2020/04/30
* Description : Main program body.
*******************************************************************************/
/*
*@Note
串口打印调试例程:
USART1_Tx(PA9)。
本例程演示使用 USART1(PA9) 作打印调试口输出。
*/
#include "debug.h"
/* Global typedef */
#define LED_ON GPIO_WriteBit(GPIOA, GPIO_Pin_0,0);
#define LED_OFF GPIO_WriteBit(GPIOA, GPIO_Pin_0,1);
#define POWER_ON GPIO_WriteBit(GPIOA, GPIO_Pin_1,1);
#define POWER_OFF GPIO_WriteBit(GPIOA, GPIO_Pin_1,0);
/* Global define */
/* Global Variable */
/*********************************************************************
* @fn GPIO_Toggle_INIT
*
* @brief Initializes GPIOA.0
*
* @return none
*/
void GPIO_Toggle_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure = {0};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Return : None
*******************************************************************************/
int main(void)
{
u8 i = 0;
u32 cnt=0,offPower;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
GPIO_Toggle_INIT();
POWER_ON;
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
printf("This is printf example\r\n");
// GPIO_WriteBit(GPIOA, GPIO_Pin_0,0);
while(1)
{
POWER_ON;
Delay_Ms(100);
GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
if(cnt==100)
{
GPIO_WriteBit(GPIOA, GPIO_Pin_0,1);
POWER_OFF;
Delay_Ms(20);
cnt=0;
}
cnt++;
}
}
ID | Name | Designator | Footprint | Quantity | BOM_Supplier | BOM_Supplier Part |
---|---|---|---|---|---|---|
1 | 1N5819WS | D1,D2 | SOD-323_L1.8-W1.3-LS2.5-RD | 2 | LCSC | C369937 |
2 | HDR-M-2.54_1x4 | J1 | HDR-M-2.54_1X4 | 1 | LCSC | C124378 |
3 | 6*6*5 Silicone silent key button | KEY | KEY-SMD_L6.0-W6.0-LS6.6_C61120 | 1 | LCSC | C61120 |
4 | SS8050_C177739 | Q1 | SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR | 1 | LCSC | C177739 |
5 | CJ2301 | Q2 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | 1 | LCSC | C2910170 |
6 | 10K | R1 | R0603 | 1 | LCSC | C99198 |
7 | 100K | R2,R5 | R0603 | 2 | LCSC | C100048 |
8 | 220 | R3 | R0603 | 1 | LCSC | C114683 |
9 | 220K | R4 | R0603 | 1 | LCSC | C123420 |
展开
加载中...
是否需要添加此工程到专辑?