ニッケル水素電池(Ni-HM)充電器


特徴


図1 ブロックダイアグラム

ハードウェア情報

ユニバーサル基板で実装したプロトタイプは、実態配線図ベースで作成しました。プロトタイプベースで回路図に起こして、PCBを作成中です。

プロトタイプ(ユニバーサル基板)

PCB

ソフトウェア

使い方

  1. SDカードスロットにSDカードを挿入し、ACアダプタを接続して電源を入れます。
    LCDに「CHK BAT_CAP」と表示されれば、正常に起動してます。
    *必ず、5VのACアダプタを接続します。充電ユニット基板内にはレギュレータはなく、 ACアダプタの電圧が直接マイコンに印可されるので、5Vを超えた電圧を誤ってかけると、マイコンが破壊されます。
  2. 電池ホルダー基板のスロットに充電する電池を入れます。
    *0~3の4つのスロットがありますが、各スロットで単3電池と、単4電池はどちらか一方のみセット可能です。 両方セットセットしないようにして下さい。
  3. 各スロットの電池容量の設定を確認します。DOWNボタンを押してスロットを変えて、0~3のスロットの値を確認します。
  4. 電池容量の変更が必要な場合は、SETボタンを1秒以上長押して、設定モードに入ります。
  5. LCDに「Select slot」と表示されたら、DOWNボタンを押して設定するスロットを選択します。 全スロットを一斉変更する場合は、ALLを選択します。SETボタンを押すと、選択が決定されます。 RETURNボタンを押すと、#3の電池容量の確認に戻ります。
  6. LCDに「Select BAT_CAP」と表示されたら、DOWNボタンを押して電池容量を選択します。 500mA - 2500mAまで50mA単位で選定が可能です。電池容量を選択したら、SETボタンを押して決定します。 設定スロットがALLの場合は、#3の電池容量の確認に戻ります。 設定スロットが0~3のいずれかの場合は、#5のスロット選択に戻ります。RETURNボタンを押すと、 電池容量が設定されずに#5のスロット選択に戻ります。
  7. 全スロットの充電が完了すると、LCDに「Finished」と表示されます。
    スロットごとに充電が完了した後は、充電回路と電池ホルダーはMOSのスイッチで切り離されます。
    SDカードは書き込みLED(黄)が点灯中は、取り出さないでください。

充電中のLCD表示

充電中の充電コントローラ基板のLCDの表示は下記のようになります。充電開始時は「状態表示」になります。 スロット#0,#1と#2,#3の表示が1secごとに入れ替わります。DOWNボタンを押すと「詳細状態表示」になります。 詳細状態表示では、1スロットごとに状態が表示されす。DOWNボタンを押すと表示されるスロットがインクリメントされます。 状態表示、詳細状態表示のどちらでも、状態がエラーの場合はエラー内容が表示されます。


図2 充電中のLCDの表示

表1 状態一覧
表示説明
D放電中
N普通充電中
Q急速充電中
F充電完了
Eエラー
表2 エラー一覧
表示説明
MINV最小電圧エラー。電池の電圧が低すぎる
SHRTショート。電池がショートしている
OPENオープン。電池がセットされていないか、内部抵抗が非常に大きい
DUR充電時間エラー。急速充電でΔV検出ができず、充電終止時間に達した
OCUR過電流エラー。充電中に過電流となった

充電コントローラ基板のLED表示

表3 状態LED(緑)表示一覧
表示説明
消灯充電をしていない状態
点灯充電をしている状態
1回点滅充電設定取得エラー。充電ユニット基板からのデータ取得エラー
2回点滅充電設定保存エラー。充電ユニット基板でのデータセーブエラー
3回点滅充電スタートエラー。充電ユニット基板で充電スタート処理が完了しなかった
4回点滅リセットエラー。充電ユニット基板でリセット処理が完了しなかった
5回点滅システムエラー。充電ユニット基板から未知の状態を取得した

表4 書き込みLED(黄)表示一覧
表示説明
消灯書き込み待機状態。もしくは、SDカードがない状態
点灯書き込み中。SDカードを抜いてはいけない
1回点滅SD初期化エラー。SDカードの初期化処理中にエラーが発生した
2回点滅ファイルシステム初期化エラー。ファイルシステム初期化処理中にエラーが発生した
3回点滅オープンエラー。SDカードのファイルオープン処理中にエラーが発生した
4回点滅書き込みエラー。SDカードのファイル書き込み中にエラーが発生した
5回点滅クローズエラー。SDカードのファイルのクローズ処理中にエラーが発生した

充電ユニット基板のLED表示

表5 LED表示一覧
表示説明
消灯充放電動作していない状態
点灯充電中
連続点灯放電中
2回点滅最小電圧エラー。電池の電圧が低すぎるた
3回点滅ショート。電池がショートしている
4回点滅オープン。電池がセットされていないか、内部抵抗が非常に大きい
5回点滅充電時間エラー。急速充電でΔV検出ができず、充電終止時間に達した
6回点滅過電流エラー。充電中に過電流となった

SDカードのデータについて

充電中の電池の状態は、SDカードにファイルとして記録されます。下の図のように、1回の充電が1ファイルとして、連番のリードオンリーファイルとして生成されます。PCにコピーしてファイルを取得します。


図3 SDカード内のファイル

*ファイルの切り取りや、削除など、ファイルに変更を加えないようにします。ディスクの容量が一杯になったら、最古のファイルを削除するロギング専用のファイルシステムで書き込まれるので、削除すると構成がおかしくなり、以後のファイルの書き込みが正常に行われなくなります。もし、ファイルを削除してしまった場合は、ファイルシステムの初期化を行います。

ログファイルの内容は下記のようなテキストファイルで、1スロットのログが1行で書き込まれます。


図4 ログファイル

1行の内容は下記の通りで、詳細は表6の通りです。
st[slot_num] [tick] [prev_state] [state] [err_code] [open_bat_vol] [chgdsc_bat_vol] [chgdsc_current] [flt_chgdsc_bat_vol]

表6 ログの内容
フィールド説明
slot_numスロット番号
tickmsecのティック。システム起動時からの積算カウント
prev_state1つ前の状態
state現在の状態
err_codeエラーコード
open_bat_vol開放電圧。充放電回路未接続時の電池電圧
chgdsc_bat_vol充放電電池電圧。充電中、放電中の電池電圧
chgdsc_current充放電電流
flt_chgdsc_bat_vol充放電電流の過去8値の移動平均値

下記のPythonスクリプトでグラフ化できます。
analyze_charge.py
下記はグラフ化した例です。(あまり、良い電池の充電例ではありません)


図5 放電時の電圧変化


図6 充電時の電圧変化

戻る