2009/4/12
放電機能を追加しました。
今朝、いつものように充電したバッテリーを4本持って
飛ばしに出かけたのですが、原因不明の振動が出ていて
1本も使えずに帰る羽目になりました。
リポは満充電で保存しておくのが良くないと言われてますので
少しばかり放電させたかったのですが、このために充放電器を
出すのも面倒なので、バランサーに放電機能を追加しました。
接続しておくと、10分程度でセル電圧4.0Vまで放電してくれます。
手間もかからず、満充電でないことで気分も少し楽になります。
実験中の写真です。
3セルをまとめて3Ω5Wのセメント抵抗で放電させます。
ケースがあったかくなるくらいセメント抵抗が熱くなります。
実験中に以前作ったコードの不具合を見つけました。
前回はたまたまうまく動作したので原因追及しないでいたのですが、
今回もFETがONしない現象が発生したので、気合を入れてコードを
見直しました。
わかってしまえば簡単なのですが、LCDの表示用関数でPIC16F88の
ポートBの上位4ビットをHighにしていました。
これだとFETをONした直後に表示関数を呼ぶと、FETがOFFに
なってしまいます。オシロで波形を見れば一発でわかるのですが、
テスターでは電圧の変化がわかりません。
現在のポートB状態の上位4ビットはそのままとするようにすれば
良いのですが、安易な解決手段として表示してからFETをONする
という順序の変更だけで対応してしまいました。
変更したコードです。
2008/9/7
ケースに組み込んで、使いやすいようにしました。
ケースに入れると放熱が悪くなるので、秋月で買ったファンを
二つ組み込みました。
DC12V 40mA、縦横2.5cm、厚さ10mmの小さなものです。
ちょうど、Lipo3セルの電圧を入力できます。
最後に残っていたバランスの崩れた電池を接続したところです。
10秒放電、1秒待ち、電圧測定、差分計算して最低電圧から
0.03V以上のセルを放電、というアルゴリズムですが、たまに収束しない
ことがあります。どうも10秒の放電の際に、最低電圧のセルよりも
放電しているセルの電圧が低くなってしまうことがあるみたいです。
ここら辺は、徐々にプログラムに手を入れていくかもしれません。
2008/8/23
やっと思ったようにプログラムが動作するようになりました。
根本原因は突き詰めていませんが、externで別ファイルの関数を
呼び出しているところでおかしな動作になっていたようです。
回路図は最終的にこのようになります。
RA5にスイッチをつけて、バランスをとるモードと、一定電圧まで
三つのセルを同時に放電するモードを選べます。
(同時放電モードはまだプログラムがありませんけども)
リポの各セルの電圧は、リポ3セル専用電圧モニターと同じ
方法で測定します。
各セルの電圧測定を行ったら、最低電圧を選びます。
もし、最低電圧と各セルの差分が0.03V未満であれば、
バランスがとれているので終了です。
最低電圧との差が0.03V以上あるセルがあれば、それらを1セルずつ放電させます。
放電は10秒間行ない、1秒後に再度各セルの電圧を測定して、
最低電圧との差分を計算しなおします。
この動作を、全てのセルの電圧の差分が0.03V未満になるまで繰り返します。
バランスの崩れたリポをこのバランサーに接続すると
数分できっちりバランスがとれます。
手持ちの6本のうち、3本がアンバランスになっていましたが、
あっというまに調整がとれて気持ちよかったです。
放電時はセメント抵抗が大分熱くなります。手で触ればヤケドします。
リード線を伝って基板まであったかくなっていました。
ケースに入れようと思っていますが、ファンが必須です。
アンバランスなリポを接続したところ。
3セルを放電しています。
各セルの電圧差が0.03V未満になり、バランスがとれたところ
CC5Xを使ったPIC用プログラムの開発方法は、こちらにまとめました。
CC5Xの使い方
2008/8/7
回路は組み上がったのですが、プログラムが思うように動かず、
大分はまっています。
CC5XというフリーのPIC用Cコンパイラを使っているのですが、
フリーだけに制限があって、オブジェクトサイズが1kByte以上に
なるとメッセージを出して途中で処理が止まってしまいます。
この問題は、ファイルを分割して二つの .cとして、それぞれの
オブジェクトサイズが1kByte以内になるようにしておき、あとで
それらの.asmファイルをリンクさせるようにして、
HEXファイルを生成させるようにしました。
MPLABのシミュレータでの動作確認は、問題無く動作しているようです。
でも、実際に書き込んで動かしてみると、なぜか特定の場所でハング
しているようです。デバッグコードを埋め込んで、どこまで動作
しているかを絞り込んでいるのですが、どうもデバッグコードを
入れることでも動作が変わるようで、なかなか進捗がありません。
デバイス不良も疑ったのですが、二つとも同じようにハングして
いるので、論理的におかしいようです。
あと少しのはずなのですが...
2008/7/7
電圧モニターでリポの電圧を見ていると、物によっては結構電圧のバラつきが
残るものがあるのがわかってしまいます。
そのたびにPOWER BALANCEをリポ1セルに設定して、電圧の高いセルだけを
他に合わせるように放電しています。
手間が面倒なので、電圧モニターに放電機能も追加してみようと考えています。
放電回路の本当に簡単な説明
1セルずつ、PchFETを使って5W-3Ωのセメント抵抗に電流を流すようにしています。
放電電流は、1Aちょっとです。
PchFETのON/OFFの制御は、フォトカプラを使っています。
配線をPCBEで引いて見ました。
だいぶ5Wのセメント抵抗が大きいです。放電電流を少なくすれば、抵抗の
W数を下げられるのですが、バランスがとれるまでの時間が長くなってしまいます。