1. | はじめに | |||||||||||||||
PIC16F886を使ったニッケル水素電池用放電器を作成しました。 特徴は次のとおりで高機能かつ極力シンプルなハードウェアになるようにしています。 また、今回の製作ではプリント基板作成及び3Dプリンタでのケース作成も行いました。
|
||||||||||||||||
2. | 定電流制御方式 | |||||||||||||||
定電流制御のPWM制御として
|
||||||||||||||||
3. | 基板作成 | |||||||||||||||
今回は汎用基板ではなく、プリント基板を作成しました。 放電用の抵抗(1Ω5Wのセメント抵抗)が接続される部分をベタパターンとして放熱効果をあげるようにしました。また放電用の抵抗は結果として放電時に触っていられるくらいの熱さになりました。 電池ホルダへの接続はコネクタを介さず、直にプリントパターンにハンダ付けするようにしました。電池ホルダーまでの結線は2.0SQ(最大17A)のコードを使っています。下図のパターンの左端のグランド部分は抵抗を下げるためにハンダを盛りました。 電池ホルダは検討した結果、接触抵抗が小さいことが期待できる電極にバネを使用していないアルミ製のものにしました。 電極部分はカシメ方式で取り付けられていましたが抵抗を少なくするために半田を盛りました。 右下の写真はプリント基板に接続した状態のものです。半田面にFETチップ2個とコンデンサ(3個)が実装されてはいますが機能の割には部品数が画期的に少ないことがお解かり頂けると思います^^
|
||||||||||||||||
4. | ケース作成 | |||||||||||||||
ケースは放熱面の考慮からアルミケースを加工して作成しようと思っていましたが放熱のための穴あけが必須です。放熱用穴の作成の容易性やLCDのサポート部分の作成の容易性等を考慮し、3Dプリンタで作成しました^^ 左下の写真がCAD画面で右側の写真が作成した部品です。(一部最新版では無いですが^^;)
|
||||||||||||||||
5. | 操作方法 | |||||||||||||||
LCD表示内容をまとめて操作の説明を書くのは非効率なので YouTube に操作動画をアップしました。 |
||||||||||||||||
6. | サンプルデータ | |||||||||||||||
放電完了時刻がバラけるようにある程度放電した電池3本の放電ログを取ってみました。 グランド強化のためにパターンと電池ホルダ結線を見直したことにより、放電完了時に他の電池のデータに干渉しておらず、効果があったことを確認できました(実は初期バージョンでは放電完了時に他の電池のデータに影響が出ていた^^;)
放電時の電圧遷移をみると一般的に良く見られる様な放電開始時に放物線(y=x2)の左側のように低下し、途中はほぼ平らで放電終了前にまた低下するような曲線ではありません。 使用した電池が手持ちの古いもの(いつも使っているような使用状態でもない)のためか、今回のような(結構遅い周期の)PWM放電の影響なのかを確認するために電流設定値を1.3Aに設定して定抵抗放電のデータを取ってみました。 結果は左下のグラフでやはり一般的な曲線にはなっていないことから使用した電池が原因のようです。放電電流の積算は 1996mAh でした。電池の仕様は 2000mAh なので(一致しすぎている感はありますが)放電完了タイミングは適切なようです。 容量測定値の評価を兼ねてダイソーで新規購入したReVOLTESの放電データ(購入から3回目の充電直後の放電)を取ったものが右下のグラフです。 新品なのでまだ性能劣化は無いはずで、測定容量は 1292mAh で電池の仕様は 1300mAh なので仕様と測定値がほぼ一致します^^
電圧のグラフがカクカクしているのが気になり、データ管理方法を見直しました。 今まではPIC内蔵のフラッシュメモリ(14bit長)に保存する形式として、電流側は情報量が少ない(殆どが定電流設定値付近の値)にもかかわらず放電終了時に急にゼロになりダイナミックレンジが大きいことから8bit(最小単位0.01A)でそのまま保存し、電圧値は変化分を6BIT(最小単位0.01V)で保存していました。 電圧データの方が情報量が多いので電圧側に9bit(最小単位0.001V)を使い、電流側はゼロの値を特殊値として扱うことで5bit(最小単位0.01A)で保存するように見直しました。 また、今までは1秒間の平均値を保存していましたが、250msの平均値に変更することで変化への追従性を改善しました。内部処理の方法も見直しデータ保存時までなるべく情報落ちがないように考慮しました。整数演算時に四捨五入できりが悪い(0.5付近の少数値)場合は事前処理(たとえば割り算で除数がn.5の場合は非除数を2倍(左シフト)してから 2 x n + 1 で割る等)することで誤差を最小化するようにしました。(浮動小数点が自由に使えればこのようなチューニングも要らず、桁溢れもあまり気にする必要もないのですが・・) 改良後のロギングデータをエクセルでグラフ化したサンプルが下記のグラフです。
|
||||||||||||||||
6. | その他 | |||||||||||||||
|
||||||||||||||||
7. | ダウンロード | |||||||||||||||
※:商用利用の場合は本ページに記載した内容を許可なく使用することを禁じます。 |
[history] | |
---|---|
2015/12/29 Ver0.04 |
update hex-file, voltage log data is smoothed |
2015/04/05 Ver0.03 |
first published by skyriver |