2.7-Air302(NB-IOT)-基础外设-锂电池充电供电,市电断电检测
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn-NB-IOT-Air302-ForLua" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
板子上有锂电池充电供电接口.
当使用DC电源供电时,给锂电池充电;
去掉DC电源,自动切换到锂电池供电.
电路细节说明
在去掉DC电源的时候,其实切换有个时间,为了保证切换的时候模组还能正常工作,
在模组的VBAT接了一个大电容
由于5V有储能滤波电容,这个电容会影响切换的速度
加了一个电阻快速泄放掉电容电量.
市电断电检测
1.测试程序(电池供电,指示灯点亮; 电源适配器供电,指示灯熄灭)
-- LuaTools需要PROJECT和VERSION这两个信息 PROJECT = "adcdemo" VERSION = "1.0.0" -- 一定要添加sys.lua !!!! local sys = require "sys" -- 网络灯 GPIO19, NETLED脚 local NETLED = gpio.setup(19, 0) -- 初始化GPIO19, 并设置为低电平 local Voltage=0; -- 采集的电压值 local VoltageCopy=0; --记录上一次的电压值 adc.open(1) -- VBAT电压 sys.taskInit(function() while 1 do sys.wait(200) local adcval,voltval = adc.read(1);--读取供电电压 Voltage = voltval/1000;--转化为实际电压 log.info("Voltage", Voltage) if VoltageCopy == 0 then VoltageCopy = Voltage; end if VoltageCopy ~= Voltage then --电压发生变化 if Voltage - VoltageCopy >= 0.2 then --电压升高 NETLED(1) -- 点亮LED end if VoltageCopy - Voltage >= 0.2 then --电压降低 NETLED(0) -- 熄灭LED end VoltageCopy = Voltage; end end end) -- 用户代码已结束--------------------------------------------- -- 结尾总是这一句 sys.run() -- sys.run()之后后面不要加任何语句!!!!!
2.测试步骤
1.接好锂电池,使用220V电源适配器供电
2.去掉电源适配器,模拟断电(指示灯亮起)
3.再次接入电源适配器(指示灯熄灭)
3.程序说明
程序只是检测电压的变化,如果电压升高了,就认为是锂电池供电
如果电压降低了,就认为是电源适配器供电.