硬件部件:
atmega328p-pu× 1個
帶按鈕的旋轉編碼器× 1個
2.5伏參考電壓,ad680jtz× 1個
8 MHz晶振× 1個
電容22 pF× 2個
電容100 nF× 5
電阻1M歐姆× 2個
電阻10k歐姆× 10
電阻4.75k歐姆× 1個
電阻1k歐姆× 7
電阻220歐姆× 1個
電阻100歐姆× 7
電容1 μF× 2個
電容器100 μF× 1個
電容1000 μF× 1個
ams1117-5.0× 1個
二極管1n400× 1個
mosfet N通道ao3400× 3
Mosfet P通道A03407× 2個
JST XH插座。3p,4p,5p× 1個
LED(通用)× 1個
散熱器× 1個
風扇40x40 12v× 1個
功率PNP晶體管1SB1375× 2個
通用晶體管PNP× 2個
通用晶體管NPN× 4
1歐姆1W 1%電阻× 2個
2.2歐姆5W電阻× 2個
齊納單二極管,5.1 V× 2個
LCD i2c顯示器16x2或20x4× 1個
Maxim Integrated DS18B20可編程分辨率1-Wire數字溫度計× 3
AA電池座× 2個
軟件應用程序和在線服務
Arduino IDE
手動工具和制造機
烙鐵(通用)
該項目致力于為NiMh AA電池充電。
聲明:這是一項正在進行的工作,該軟件仍處于Alpha階段。
該充電器可用于為電池緩慢和快速充電,也可以恢復舊電池。該充電器基于Arduino微控制器atmega328p-pu,可將全部可用信息顯示到16x2或20x4 LCD字符屏上。它最多可以獨立為兩節電池充電。您只能給一個電池充電,也可以同時給兩個不同容量的電池或兩個類似的電池充電。在為電池充電之前,必須為每個電池插槽設置電池容量,充電速度和循環計數,然后將電池插入插槽,然后過程開始。
充電器支持三種充電模式:
? 快速充電。電池應在5個小時內充滿電。充電電流取決于電池容量,等于0.2C。
? 充電緩慢。電池應在10小時內充滿電。充電電流等于0.1C。
? 恢復充電。此模式下的充電電流限制為40mA。恢復時間取決于電池容量。此模式可用于恢復電池容量并為其他充電器無法充電的舊電池充電。
充電過程包括以下幾個階段:
? 放電階段。電池通過內部電阻放電至0.9 v。
? 預充電階段。電池以小電流充電,大約30mA,直到電池電壓變為1.0v。
? 主充電階段。根據計算的電流對電池充電,具體取決于電池容量和充電模式(快速,緩慢還原)。如果檢測到電壓下降或電池過熱或達到電壓上限,則電池充電階段結束。
? 充電后階段。電池以小電流充電,直到另一個電壓下降或電壓上限。
? 完成階段。電池會以短電流脈沖充電,直到將其從充電器中取出為止。
如果在給電池充電之前未設置環路,則充電過程將貫穿整個階段。如果選擇運行多個充電循環,則充電器將在主充電階段完成后立即重新開始放電過程,直到達到循環計數為止。您可以使用多個循環充電來恢復電池容量。
充電器具有三個溫度傳感器:一個用于每個電池插槽,另一個用于控制安裝在功率晶體管上方的內部散熱器的溫度。為了降低內部散熱器的溫度,在充電器內部安裝了一個小風扇。散熱器溫度達到最高限制時,風扇會自動打開。當散熱器變冷時,風扇將關閉。
充電器原理圖如下圖所示。為了簡化原理圖的讀數,它分為三個部分:控制器部分和兩個通道。兩個充電通道都非常相似,唯一的區別是輸出和輸入信號以及組件編號。
充電器的控制器部分:
如上圖所示,為增加電池電壓測量,已實現外部基準電壓源AD680JTZ。其精度為0.4%,并且控制器可以檢查高達0.001伏的電池電壓。您可以用運行在8 MHz或更高頻率的Arduino板(uno,nano,pro mini)替換atmega328p-pu IC。
這是套接字說明:
? J1可以像Arduino pro mini一樣通過UART端口對微控制器進行編程。
? J2連接電池溫度傳感器DS18b20
? X2 12伏電源連接器
? U3連接i2c LCD顯示器。平滑改變顯示屏亮度所需的亮度引腳
? U4連接旋轉編碼器。
? U5連接安裝在散熱器上的12v 40x40x10mm風扇。
通道“ A”原理圖:
通道“ B”的原理圖:
在這里,您可以找到該項目的完整原理圖和PCB板。
讓我解釋一下充電器如何在通道“ B”上工作。晶體管Q9和Q10是達林頓對,可為連接到插座J4的電池提供充電電流。Arduino控制器通過PWR_B端口將PWM信號提供給Q13晶體管。PWM占空比越大,在Q9集電極上產生的電流就越大。
Q11 mosfet用于啟用或禁用電池充電電流。Q12 MOSFET用于通過R26電阻對電池放電。
要測量R31電阻上的充電電流電壓,請檢查。
定義溫度傳感器的正確順序
您必須對充電器進行一些初始配置,因為在此項目的單條總線上有三個溫度傳感器ds18b20。在啟動過程中,充電器以某種特定順序檢測所有傳感器。您必須指定正確的傳感器順序,充電器才能正常工作。
將NiMh_Serial固件加載到您的控制器,并將終端連接到UART端口。選擇“溫度”菜單項。按下編碼器按鈕。您可以看到所有溫度傳感器的值。加熱一些傳感器,并記住它在列表中的位置。對每個傳感器重復此過程。現在,您可以定義充電器的正確傳感器順序。將NiMH_Charger代碼加載到Arduino IDE并找到“ core.init(SO_BHA);”行。在setup()函數中。要定義正確的傳感器順序,您必須為core.init()方法指定正確的SO_ *代碼。溫度傳感器有6種可能的組合:
SO_ABH-通道“ A”,通道“ B”,內部散熱器。
SO_BAH-通道“ B”,通道“ A”,內部散熱器等。
此過程只能執行一次。
串行固件的其他可能性
* _serial固件是一種功能強大的工具,可用于調試充電器硬件。使用串行菜單,您可以選擇電池通道“ A”或“ B”之一,定義充電電流,執行測試充電,測試放電,散熱器風扇測試和溫度傳感器測試。
該項目仍在進行中,因為電池充電過程非常耗時,并且調試需要大量時間。
責任編輯:pj
-
微控制器
+關注
關注
48文章
7651瀏覽量
152114 -
顯示器
+關注
關注
21文章
5010瀏覽量
140408 -
晶體管
+關注
關注
77文章
9746瀏覽量
138901
發布評論請先 登錄
相關推薦
評論