
ESP32S3 Kits
简介
支持一键开关机、电池充放电、USB烧录模块扩展的ESP32开发板套件
简介:支持一键开关机、电池充放电、USB烧录模块扩展的ESP32开发板套件开源协议
:GPL 3.0
描述
故事
不知不觉,学习电子电路已经有一年时间了。有幸参加了很多期嘉立创的活动,也做了很多块板子。
每次做板子,都要重新设计一次PCB,重新画线。于是我从Arduino Shields项目中受到了启发,想设计一套可以模块复用的开发板套件。正好一年一度的彩色丝印活动开始了,我画了一块新年主题的主板。
项目介绍
第一版的套件包含:主板、USB-TTL模块、一键开关机模块、电池充放电模块。
组合使用的话,如图方式进行Pin To Pin连接,可以焊接或者通过针脚连接。
主板
MCU选择的ESP32 S3,电路设计参考的 立创·ESP32S3R8N8开发板
。稍有不同的是:
1、使用 2N7002DW 代替了两颗三极管;
2、GPIO48使用运算放大器控制LED灯;
3、采用0603封装;
主板分左右两个区:扩展区和核心区。扩展区包含 2块洞洞板区和5块引脚区。
USB-TTL模块
USB-TTL模块与主板上下贴合使用或单独使用。
左上Pins分别是:
-
VBUS:来自USB的经过保险丝后的+5V输入
-
NC:不要使用(直接连接电池,为了避免过放,不建议使用)
-
GND:共地
右上Pins分别是:
-
5VBAT:来自电池的经过TP5400升压后的5V输出
-
GND:共地
左下Pins分别是:
-
5VIN:来自开关模块控制的5V输入
-
ACT:开机关机动作按键
-
OFF:强制关机按键
-
GND:共地
右下Pins分别是:
-
5VINEN:5VIN使能引脚,使用一键开关机模块时,将5VINEN和5VOUT连接,电路电源开关受到一键开关机模块控制
-
5VOUT:来自USB或电池输出的5V电源,不受开关限制
-
3V3:3.3V输入
-
GND:共地
一键开关机模块
在经典的一键开关机电路基础上,增加了C1电容和防倒灌二极管,可以在MCU刷机的时候,保持电源开关
Pins的含义分别是:
-
5VIN:来自供电模块的5V输入
-
VMCU:来自MCU的+输入
-
5VOUT:受开关控制的5V输出
-
ACT:开关机和功能按键信号, 按下时为低电平
-
OFF:MCU控制关机信号, 高电平保持开机,低电平关闭
-
GND:共地
电池充放电模块
该模块使用TP5400实现电池充电放电,也可以单独使用
IN一侧Pins分别是:
-
U+:来自USB的5V输入
-
B+:接充电电池+
-
B-:接充电电池-
-
U-:接USB的GND
OUT一侧Pins分别是:
-
+: 输出+5V
-
-: 接地
测试程序
注意烧录程序时,要保持开机状态,如果OFF_PIN时低电平,可以按住开机键保持开机状态。
点灯
#include
void setup()
{
pinMode(48, OUTPUT);
}
void loop()
{
digitalWrite(48, LOW);
delay(100);
digitalWrite(48, HIGH);
delay(100);
}
开关机控制
#include
#define ACTION_PIN 5
#define OFF_PIN 7
unsigned long buttonTimer = 0;
void setup()
{
// 按住开机键2秒后启动
pinMode(OFF_PIN, OUTPUT_OPEN_DRAIN);
digitalWrite(OFF_PIN, LOW);
delay(2000);
digitalWrite(OFF_PIN, HIGH);
pinMode(ACTION_PIN, INPUT);
pinMode(48, OUTPUT);
}
void loop()
{
if (digitalRead(ACTION_PIN) == LOW)
{
// 按住开机键2秒之后松手关机
if (buttonTimer != 0 && millis() - 2000 > buttonTimer)
{
digitalWrite(OFF_PIN, LOW);
}
}
else
{
buttonTimer = millis();
}
digitalWrite(48, LOW);
delay(100);
digitalWrite(48, HIGH);
delay(100);
}
设计图

BOM


评论