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.程序說明

程序只是檢測電壓的變化,如果電壓升高了,就認為是鋰電池供電

如果電壓降低了,就認為是電源適配器供電.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM