DIY邏輯充電器

2021-09-26 08:19:02 字數 2724 閱讀 2604

由於我經常開發一些奇奇怪怪的小東西,所以手上有較多鋰電池,長時間儲存對我這種懶人帶來的困擾,正常邏輯是每次充電完成後,由人工更換下乙個電池充電,如此往復,如使用多個充電器同時進行此項工作(並行),成本與效率均較高,於是設計了這個邏輯充電器,其最大支援4塊電池充電,但每次充電一塊,單塊充電完成後,由微控制器讀取充電晶元訊號,後關閉該通道充電,並開啟下乙個充電通道,如此往復,是一種用時間換效率和成本的雞肋設計。

實物如下圖1所示、散熱片下是tc4056充電晶元(tp4056可替換),主控微控制器為n76e003。

此外,檢測充電完成時,首先使用微控制器檢測充電晶元stdby引腳電平變化,其原理及電路如下圖3、4、5所示,當stdby引腳拉低後,5v電源通過10k電阻及led,其管腳電壓變化為3.2v左右,此時配置為輸入模式(高阻態)的微控制器管腳即可採集到該訊號。

使能及關斷充電工作,均使用其tc4056的ce管腳,原理如下圖6、7所示,微控制器配置為pp(推挽輸出),串聯一ss24肖特基二極體到ce管腳上進行控制

//控制tp4056啟停,高電平驅動

sbit tc0=p0^0;

sbit tc1=p0^4;

sbit tc2=p0^5;

sbit tc3=p0^1;

//檢測充電是否完成,高阻輸入模式,低電平完成/高電平正在

sbit flash0=p1^0;

sbit flash1=p0^3;

sbit flash2=p0^2;

sbit flash3=p1^5;

uint adc_bat[4];

uchar tp_tc[4];

char ztjj=-1;

/***************************************

功能:檢測4個埠的電池電壓,送入陣列中,分配

充電任務。

引數:無

說明:無

***************************************/

void adc_sampling()

/***************************************

功能:分配充電順序

引數:無

說明:無

***************************************/

void bat_logic()

if(adc_bat[i]>=4100)tp_tc[i]=2;//充電完成的,開啟(置2,可不遵守順序充電)

if(adc_bat[i]<=1000)tp_tc[i]=0;//不存在電池,關閉

} //充電完成的,不計入邏輯順序

if(tp_tc[0]==2)

if(tp_tc[1]==2)

if(tp_tc[2]==2)

if(tp_tc[3]==2)

switch(ztjj) }

/*操作流程

1、tc0-3全關,使用ain0-ain3進行檢測找到低於閾值(1000-4000)

2、當發現高於閾值時,開啟對應充電,使其指示燈亮。

2、按照0-3順序分配充電任務,開啟對應4056。

3、等待對應充電晶元flash訊號發出,確認完成(保持開啟,指示燈亮)。

5、檢測到對應ztjj充電完成後,再使用一次adc_sampling、bat_logic

概率充電器

記憶體限制 256 mib 時間限制 2000 ms 標準輸入輸出 題目描述 著名的電子產品品牌 shoi 剛剛發布了引領世界潮流的下一代電子產品 概率充電器 採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決定 shoi 概率充電器,您生活不可或缺的必需品 能充上電嗎?現在就試試看吧 ...

通用充電器參考程式

sbit clk p3 0 sbit cs p3 1 sbit di p3 2 sbit do p3 3 sbit iset p3 4 sbit c f p3 5 sbit on p3 7 sbit cell2 p1 7 sbit offv p1 2 sbit led red p1 3 sbit l...

手機充電器和協議

手機充電器協議太複雜了,我還是用回5v1a吧?確實,現在的手機充電器的協議真的很多,許多手機廠商都有自己的協議。不過就算是高通的qc和usb if協會定製的pd協議,不都是私有的嗎,我覺得只要夠好用,能普及開來就是好協議。協議是真的多,這樣我選購手機充電器的時候疑慮重重啊,為了自己給以後選購充電器提...