※記事内に商品プロモーションを含む場合があります
ニッケル水素充電池や鉛蓄電池の容量測定には
電子負荷が良いと思います。
ただし、電圧データのロギングと終止電圧での放電終了も
無いと電池容量計測には使えません。
と言う事で作ってしまいました。
完全デジタル制御な電子負荷装置
この電子負荷装置にはボリュームなどは全くありません。
あるのは端子のみ。
電流などは現状、スケッチ上で操作出来ます。
動作の原理
参考にしたのはこちらのサイト。
Dummy load(英語)
上のフォーラムでの投稿でArduinoからコントロール出来る
電子負荷装置として回路図もありました。
フォーラムより引用した回路図がこちら
簡単に説明するとAの部分がローパスフィルターで
Bの部分が定電流電子負荷回路となっています。
私はローパスフィルターの抵抗には10KΩ、
コンデンサには4.7μFの電解コンデンサを使いました。
LM358の電源電圧は9Vか12Vを入力します、
5Vでは定電流にならない事があります。
ArduinoからPWMを入力すればローパスフィルターの
出力電圧はほぼ一定になります。
その電圧と電流検出抵抗の電圧をコンパレータで比較して
定電流になる様に制御されています。
ただし、PWMを0にしても25mA程流れたり
負荷電圧によって電流が変わる事もあったので別の回路も
追加しました。
PチャネルMOSFETによる電流遮断回路
PWMを0にしても微弱電流が流れ
放電しきった電池を痛める可能性もあるので
電流を完全に遮断出来る回路を追加しました。
この回路の追加により、
電流遮断回路が動作すれば電流は流れなくなります。
INA226での電圧、電流測定
電流検出抵抗は1Ω。
よってオームの法則により1A=1Vとなります。
1A流れている時の電流検出抵抗両端の電圧差が1Vとなります。
そこで、Arduino内臓ADCで変換しましたが電流が大きくなったり
小さくなったりと誤差が激しいので別の回路で使おうと思っていたINA226を
使う事にしました。
ハードウェア的には完成した電子負荷
上の部分にはヒートシンクを付けましたが比較的コンパクトです。
ボリュームなどのツマミも電流計もスイッチもありません。
左から、
ACアダプタ入力(12V)
シリアル通信(UART)ピン
負荷プラス
負荷マイナス
内部はこの様になっています。
この時はテスト中だったのでケーブルがごちゃごちゃですが、
後でタイラップでまとめました。
負荷用FET、電流遮断用FET、電流検出抵抗はヒートシンク用
接着剤で固定しています。
後に取れると危ない負荷用FETのみネジ止めを併用しました。
上の方にある小さい基板がオペアンプが乗った定電流制御回路。
元々、Arduino UNOでテストしていましたがINA226を乗せるに当たり
単独仕様に変更しました。
負荷用FETは昔買ったIRFP460A、許容損失が280W。
ですが15Wでも結構熱くなるので実用としては20Wが限界だと思われます。
連続仕様なら10W以下が安全でしょう。
定電流の精度は低いかも
現状0.5秒置きに計測とPWMの補正を行っています。
シリアル出力された電流値もほぼ1Aなので良いかと。
現在0.5秒delayを入れていますが、
精度を高める為にdeleyを無くしたり値を小さくすると
電流に波が発生します。
500mAなのに0.1mAになったり1Aになったりと。
実用にならなかったので比較的安定している0.5秒にしました。
電流値は設定値の前後になっているので
電池容量測定ぐらいなら良いかなと思っています。
まとめ
ハードは完成しましたが、ソフト(スケッチ)はまだまだなので
現状非公開とします。
電流値と放電停止電圧を設定出来ます。
測定値はシリアル出力しているので
前作ったシリアルロガーでロギング出来ます。
今後、スケッチを完成させつつも
Arduino制御DCDCコンバータを作ろうと思っています。