JIS C8708:2019対応ニッケル水素電池充放電実験回路(回路図とプログラム)
JIS C8708:2019対応ニッケル水素電池充放電実験回路、回路図とプログラムをアップしておきます。
今、これで「eneloop」の実験を続けています。
http://igarage.cocolog-nifty.com/blog/2020/04/post-85a68d.html
※5V3Aくらいの電源を回路のそばに設けるのなら、24Vから5Vを
作っているDC-DCコンバータは不要でしょう。
実験ベンチで24V電源があるので、それを利用したかったから。
24Vで引き回すほうが電流が少なくなるんで電圧ドロップが小さい。
これがスケッチ。
ダウンロード - batcyc3b.zip
Arduino-UNOから取り外したATmega328P(ブートローダーが書き込まれている)を回路のソケットに実装して配線。
UNO基板とRESET、RXD、TXD、GNDの4線をつないでプログラムをアップロードします。
測定結果はシリアルで出力。
ざっとの調整方法。
ハードウェアの状態(基準電圧値や抵抗の精度、配線の状態)で変化しますんで、調整は必須です。
調整に必要なもの。
・電圧可変できる電源。
A/D値のスケーリング確認と放電電流の確認用。
電流1.5Aは必要。
・デジタルテスター
A/D入力(電池電圧)の確認と充放電電流の確認。
「MUNU」スイッチを押すとこんな画面が出ます。
-------------
Menu sel
1 Stand-by
2 Parameter setting
3 PWM Test
-------------
「3 PWM Test」を選んで(↑↓スイッチで選択)ENT。
すると、電池電圧を入力するA/D値と、充放電電流を設定するPWM値が表示されます。
-------------
PWM Test. A/D: 234
1 Ret Menu 1024mV
2 Chg : 400 213mA
3 Dchg:4000 1500mA
-------------
●電池電圧入力用A/D値の確認
入力電圧によりA/D値が変化します。
電池ボックスに可変電圧電源と電圧レンジにしたテスターをつなぎます。
A/D値は0~1023の10bit。
電圧は「mV」値での表示です。
(分解能は1~2mVと、1飛びか2飛びに)
パラメータ設定の、
19 A/Dref 1.0V 117 A/D基準値 1.00V ※2
20 A/Dref 1.8V 774 A/D基準値 1.80V ※2
で設定された値でスケーリングして「mV」値で表示します。
ですので、この値を調整しなければ正しい電圧が出てきません。
1.0Vと1.8Vの電圧を与えて、その時のA/D値をメモしておきます。
パラメータ設定に戻った時にそれらを設定します。
●充電電流の確認
いったん電源をはずし、電池ボックスの+/-にテスターを電流レンジにしてつなぎます。
「2 Chg」を選んで「ENT」すると、充電電流制御回路が働きます。
「↑↓」で充電PWM値が変化、12bit(0~4095)の範囲で操作できます。
このとき、
21 PWM Chg0.1A 257 充電電流PWM 0.1A基準値(0~4095) ※2
22 PWM Chg1.5A 3962 充電電流PWM 1.5A基準値 ※2
充電電流を0.1Aと1.5Aにした時(テスターの読み)のPWM値をメモします。
「mA」値として表示されているのは、このパラメータでスケーリングした電流値です。
ですので、調整前(パラメータ設定前)はテスターでの読みとは異なります。
●放電電流の確認
1.5V程度に設定した電源と電流レンジしたテスター(直列つなぎ)を電池ボックスにつなぎます。
「3 Dchg」を選んで「ENT」で放電電流制御回路が働きます。
同じように12bitのPWM値で電流を変えることができます。
23 PWM Dcg0.1A 268 放電電流PWM 0.1A基準値 ※2
24 PWM Dcg1.5A 4021 放電電流PWM 1.5A基準値 ※2
テスターの読みが0.1Aと1.5AになったときのPWM値をメモしておきます。
この6つの数値をメモして「3 PWM Test」を終わります。
●パラメータの設定
メニューから「2 Parameter setting」を選んで、パラメータの設定を行います。
0 - Ret Menu - (Menuへ戻る)
1 1-49Cg0.5CmA 950 1~49cyc 0.5C 充電電流設定値 ※1
2 50Cg 0.1CmA 190 50cyc 0.1C 充電電流設定値 ※1
3 1-48Dc0.5CmA 950 1~48cyc 0.5C 放電電流設定値 ※1
4 49Dcg 0.5CmA 950 49cyc 0.5C 放電電流設定値 ※1
5 50Dcg 0.2CmA 380 50cy 0.2C 放電電流設定値 ※1
6 1-49Chg Time 132 1~48cyc 0.5C 充電時間 (分) 132分:2時間12分
7 50Chg Time 960 50cy 0.1C 充電時間 (分) 960分:16時間
8 1-48Dcg Time 180 1~48cyc 放電時間 (分) 3時間くらい
9 49Dcg Time 180 50cy 放電時間 (分) 3時間くらい
10 1-49Chg Wait 20 1~49cyc 充電後待ち時間 (分) 20~30分
11 1-49Dcg Wait 10 1~49cyc 放電後待ち時間 (分) 10~90分
12 50Chg Wait 60 50cyc 充電後待ち時間 (分) 60~240分
13 50Dcg Wait 60 50cyc 放電後待ち時間 (分) 十分な
14 V-Stop 1-48 100 1~48cyc 放電停止電圧 1.00V
15 V-Stop 49 100 49cyc 放電停止電圧 1.00V
16 V-Stop 0,50 100 0cyc,50cyc 放電停止電圧 1.00V
17 -dV mV 10 -ΔV (mV) 5,10mV
18 -dV Delay 10 -ΔV 検出開始時間 (分)
19 A/Dref 1.0V 117 A/D基準値 1.00V ※2
20 A/Dref 1.8V 774 A/D基準値 1.80V ※2
21 PWM Chg0.1A 257 充電電流PWM 0.1A基準値(0~4095) ※2
22 PWM Chg1.5A 3962 充電電流PWM 1.5A基準値 ※2
23 PWM Dcg0.1A 268 放電電流PWM 0.1A基準値 ※2
24 PWM Dcg1.5A 4021 放電電流PWM 1.5A基準値 ※2
25 Data TX 1m 0 1分ごとデータ送出有無 0/1
26 Data TX D50 0 50cyc放電時電圧送出有無 0/1
27 TimerSpeedUp 100 タイマー加速データ 通常100
28 Chk cyc(50) 50 測定最大サイクル 通常50回目で放電記録
29 End cyc(8) 8 最終測定サイクル 1~8 EEPROMの容量
30 - Ret Menu - (Menuへ戻る)
まずは、先ほどの6つの値から。(※2のところ)
「ENT」で項目を選んで、「↑↓」で数値がup/down。
ENTで確定、内蔵EEPROMに記憶されます。
これを設定してから「3 PWM Test」に戻ると正しい電圧値と電流値が表示されるはずです。
※1は調べる電池の定格容量に従って設定します。
0.1C、0.2C、0.5Cの電流値を「mA」単位で設定しておきます。
(初期値はeneloopスタンダード用)
いろんなパターンで実験できるように充電と放電の設定を分けています。
また、1~48cycでの放電と49cyc目の放電パラメータを分けてみました。
3 1-48Dc0.5CmA 950 1~48cyc 0.5C 放電電流設定値 ※1
4 49Dcg 0.5CmA 950 49cyc 0.5C 放電電流設定値 ※1
8 1-48Dcg Time 180 1~48cyc 放電時間 (分) 3時間くらい
9 49Dcg Time 180 50cy 放電時間 (分) 3時間くらい
14 V-Stop 1-48 100 1~48cyc 放電停止電圧 1.00V
15 V-Stop 49 100 49cyc 放電停止電圧 1.00V
新JISの試験手順では、1~49cycは0.5Cで1.0Vまでの放電です。
例えば、「8 1-48Dcg Time」の値を「60分」にしておくことで、1~48cycでは「容量の半分まで放電」を続けるような試験が可能になります。
1.0Vまでの100%放電ではなく「ちょっと容量を残して放電するとどうなる」を確かめられるようにしました。
※-ΔV検出で充電するので、次サイクルはフルまで充電してくれる。
※放電停止電圧では放電深度は分かりません。
電流で監視すれば、どこまで放電したかがはっきりします。
「4 49Dcg 0.5CmA」は、50cyc目充放電直前の放電を、0.5Cでなく0.2Cのゆっくり放電にして「電池を空っけつ」にしてから50cyc目を迎えられるようにというためのものです。(旧JISの試験手順)
※この時は「9 49Dcg Time」の時間も大きくしなければなりません。
以下のパラメータはデバッグ用。
25 Data TX 1m 0 1分ごとデータ送出有無 0/1
26 Data TX D50 0 50cyc放電時電圧送出有無 0/1
27 TimerSpeedUp 100 タイマー加速データ 通常100
28 Chk cyc(50) 50 測定最大サイクル 通常50回目で放電記録
29 End cyc(8) 8 最終測定サイクル 1~8 EEPROMの容量
タイマーの進みを早くしたり、サイクル数を減らしたりして実行状況を見ていました。
必要な設定を終えた後は、電池をセットして「START」。
電池ボックスと電池の接点をIPAなどできれいにしておきましょう。
結果が出るまで何週間もかかります。
400サイクルが終われば自動停止。
「TX」ボタンで結果(50cycごとの放電記録)を出力します。
※シリアル出力する途中経過も重要ですんで、
シリアルデータ記録回路 を作ったという次第です。
※追記
「18 -dV Delay」、(充電開始後に-ΔV検出を始めるまでの遅延時間)この設定、今は10分ですがもうちょい長くしたほうが良いかも。
ReVOLTESの充放電、200サイクルを越えてから充電開始直後に発生する電圧ドロップが目立つようになってきました。
(チャートレコーダーでの電圧変化記録波形を見て)
これが短いと、-ΔV検出をミスするかもです。
(今のところ10分でミスは起きていないけど)
あまり長くすると、劣化が進んだときに-ΔV検出を無視するなんてことになりますし、15分~20分あたりでしょうか。
※参考
・電池電圧入力回路の解説
・-ΔV検出の様子
・定電流回路の電流検出抵抗を試す
| 固定リンク
「電池」カテゴリの記事
- FDKの長寿命電池「HR-AAULT」(1000mAh) 800cyc目(2023.03.09)
- 放置していた2014年製の「eneloop lite」を充放電 2000cyc目(2023.02.01)
- タミヤ★★ミニ四駆用充電池「NEO CHAMP」950mAh 2400サイクル目(2023.01.29)
- 定期的な電池チェックを!(2022.12.27)
- バックアップ用バナジウム・リチウム二次電池の充電回路(2022.12.22)
「電子工作」カテゴリの記事
- 電池ホルダーから電源供給するためのアダプタ(ダミー電池)#2(2023.03.24)
- 電池ホルダーから電源供給するためのアダプタ(ダミー電池)(2023.03.23)
- 単電源で反転アンプ マイナスの入力電圧は増幅できます(2022.11.28)
- 予告:「マイコン型導通チェッカー」「電池電圧チェッカー」値上げします(2022.11.16)
- ダイソー ミニケース 5個組の加工(2022.10.23)
「Arduino」カテゴリの記事
- Arduino サーミスタを使った温度測定で 【ゼロ除算問題】(2023.03.23)
- A/Dコンバータでサーミスタの抵抗値を読む サーミスタをつなぐ場所は?(2023.03.21)
- トラ技の目次で「Arduino」を検索すると(2023.03.09)
- 8ビットマイコンの割り込み処理・・・1バイトに収まるなら1バイトに(2023.03.01)
- Arduino UNOで0.00~40.00mA定電流負荷回路(2023.01.13)
コメント