在做arduino应用时,除了程序系统以外,电源方案也是很关键的。一个常用的场景是需要电池供电,要小型化,要省电,有时因为传感器使用5V电源,所以需要升压,系统希望能自动关机等。
一、为应对上述场景,提出了系统设计需求:
1、电池使用16340,体积小;
2、使用充电好电池保护的片子;
3、因为传感器需要5v,所以需要升压片;
4、因为需要省电,可以使用arduino和传感器的休眠,或者直接关闭电源;
5、因为升压片空载也会耗电,所以最好直接关闭电源;
6、需要一个微动开关,按一下系统启动,再按一下系统关闭;
7、arduino需要控制电源芯片关闭,实现自动关机功能;
二、系统设计
1、电池和电池盒
采用16340/CR123A充电电池,3.7v1000mah,体积小;淘宝随便搜一个就好;
电池盒见下图,随电池一起买一个;
2、充电和电池保护片
不让贴链接,大家自己找一个就好,或见博客:http://blog.sina.com.cn/s/blog_54bf41d30102x16j.html
3、升压片选用带使能的片子,在网上寻找,似乎只有这一种带使能的升压片

4、电路

图中A0应为A2,与程序相对应。
5、原理
(1)按键串电阻R1,接升压片使能,按下电源片有输出,系统启动;R1阻值经过试验,不能大于35欧姆;
(2)系统启动后,使D5为HIGH,维持电源片输出;
(3)系统检测A点电压,当感知到按键按下后,使D5输出LOW,系统关闭;
(4)系统需要关闭时(如时间长系统停)
三、程序设计
int sensorValue = 0;
void setup() {
pinMode(5, OUTPUT); //D5为电源控制,高电平启动,低电平关闭
digitalWrite(5, HIGH); //保持开机状态
delay(2000);
}
void loop() {
sensorValue = analogRead(A2); // A2为微动开关监测点
if (sensorValue < 900){ digitalWrite(5, LOW); } //如果微动开关按下,则A2度数小于900,关闭电源
delay(200);
}
四、实际测试

注:按键的检测值900,可能需要实际测试一下,编个小程序,用串口输出按键按下时的读数。
详细方案和链接见博客:http://blog.sina.com.cn/s/blog_54bf41d30102x16j.html
一、为应对上述场景,提出了系统设计需求:
1、电池使用16340,体积小;
2、使用充电好电池保护的片子;
3、因为传感器需要5v,所以需要升压片;
4、因为需要省电,可以使用arduino和传感器的休眠,或者直接关闭电源;
5、因为升压片空载也会耗电,所以最好直接关闭电源;
6、需要一个微动开关,按一下系统启动,再按一下系统关闭;
7、arduino需要控制电源芯片关闭,实现自动关机功能;
二、系统设计
1、电池和电池盒
采用16340/CR123A充电电池,3.7v1000mah,体积小;淘宝随便搜一个就好;
电池盒见下图,随电池一起买一个;
2、充电和电池保护片
不让贴链接,大家自己找一个就好,或见博客:http://blog.sina.com.cn/s/blog_54bf41d30102x16j.html
3、升压片选用带使能的片子,在网上寻找,似乎只有这一种带使能的升压片

4、电路

图中A0应为A2,与程序相对应。
5、原理
(1)按键串电阻R1,接升压片使能,按下电源片有输出,系统启动;R1阻值经过试验,不能大于35欧姆;
(2)系统启动后,使D5为HIGH,维持电源片输出;
(3)系统检测A点电压,当感知到按键按下后,使D5输出LOW,系统关闭;
(4)系统需要关闭时(如时间长系统停)
三、程序设计
int sensorValue = 0;
void setup() {
pinMode(5, OUTPUT); //D5为电源控制,高电平启动,低电平关闭
digitalWrite(5, HIGH); //保持开机状态
delay(2000);
}
void loop() {
sensorValue = analogRead(A2); // A2为微动开关监测点
if (sensorValue < 900){ digitalWrite(5, LOW); } //如果微动开关按下,则A2度数小于900,关闭电源
delay(200);
}
四、实际测试

注:按键的检测值900,可能需要实际测试一下,编个小程序,用串口输出按键按下时的读数。
详细方案和链接见博客:http://blog.sina.com.cn/s/blog_54bf41d30102x16j.html