2017/05/12

充電池劣化と満充電の判定

Teraterm に出力
これまで充電流変化の記録を Slip21 の MCU と名付けたメニュから行っていたのを,AVR ATmega8 にソフトタイマを導入して,通信ソフト Teraterm による記録にかえた。
ChargeTeraterm.png 

定電流持続時間による充電池劣化判定
性能が低下している 950mAh の Eneloop 11 と 12 のペアを充電してみた。サンプリング時間を1分から5分まで設定できる。最初のカラムはそのカウンタだ。この場合,2分間になる。次の2列のカラムは CH1 および CH2 の充電流値を示す。充電流は矩形の交番波形になるため,零を測定する場合もある。DSO の Measure による平均値を求めると設定電流の 200mA である。次のカラムは I2C インタフェースの高精度デジタル温湿度センサ HDC1000 による温度と湿度だ。

ChargeE11E12tera.png 
上図は充電流値データを LibreOffice Calc に取込みチャートにした。充電開始 28分後, CH1 および CH2 の交番周波数は DSO により 28Hz と95Hz だった。測定点は ADC の入力点である。96分後には CH1 がDCに遷移し,CH2 も96分後にはDCに変化していた。定電流回路が働く時間の多寡で充電池の劣化を判定できそうである。しかし,チャートを見る限り満充電の判定はできそうもない。

測定ノイズと精度
充電池を取り外した 9:58 に,ノイズとオフセットを計ってみた。DSO は 50mV/div,25ms/div

          Noise Level      Offset
CH1    20mVpp          -3.1mV
CH2    16mVpp          -70uV

Noise Level はカーソルにより読み取り,Offset は Measure の平均値である。Acquire は 64 である。±10mA の誤差が考えられる。10mA 程度の電流が流れているからといって充電されているのではなく,単に熱に変換されている可能性がある。しかし,どの位の充電流で打ち切ればいいのかわからない。本充電器は定電圧充電回路も併用しているので過充電になるおそれはない。

ATmega8 の ADC 参照電圧が 2.56V もあるとは思ずに,充電流検知抵抗を 1Ω にした。DSO による直読に拘らなけば,電流検出抵抗を大きくするか,低い外部参照電圧を供給するかだろう。元から 10 mA 程度検知できればいいくらいで設計したけど,満充電判定にはそこそこの電流測定精度が必要かな。内蔵 ADC は10ビットだから,理論分解能は 2560/1023 2.50 mA になる。

DSO での2チャンネル波形観測にこだわらければ,差動アンプも必要なくなり,Bipolar ADC の AVR がある。けれども,PC との接続が大変だ。なにかいい方法がないのか。

Arduino だと SoftwareSerial なるソフトを使えばシリアル通信風になるらしい。ライブラリを作成するスキルがないので Arduino を1台購入してもいいかな。しかも配線もしてあり,3種の老眼鏡を使い分けている老人には半田付けの必要もなくありがたい。

参考

関連記事

コメント

非公開コメント