ニッカドやニッケル水素電池はよく使う。しかし、この扱いが結構厄介で一体いつ充電して良いのかがよくわからない。デジカメは結構大食いで、かなり短時間でバッテリ低下を示す。しかし、どう考えても容量よりはるかに短時間しか動かない。きっと、メモリ効果のせいだ。また、同種の電池が何本もあると同時使うものを識別しなくてはいけない。だから一本単位で充電したいが、市販の充電器で一本単位で充電できる製品はあまり見かけない。ということで、充電器を作ってみた。
・全景
もうちょっと小さく作りたかったが、無理だった。下中央にあるのが液晶で、充電状態などを示す。今のところソフトが不完全なので、電圧しか表示していない。右のスイッチはモード切替などだが、これもソフトがまだ完全に対応していない。
電池ケースはポリプロピレンのようで、エポキシ・ゴム系いずれの接着剤でもケースに固定できなかった。結局固定はネジを使っている。 |
・内部の様子
AD付きPICマイコン(16C74)で制御している。マイコン右のICは充電状態を制御しているラッチだ。さらに右にある2つのICはオペアンプで、上にあるトランジスタとともに定電流回路を構成している。当然ながら定電流回路は8回路ある。充電電流は200mA。右上のコネクタ直下にあるトランジスタは放電用である。
液晶の配線が多くてIO不足になり外部のラッチで補ったのだが、この液晶を4ビットで動作させればラッチは必要ないことに後で気づいた。そうするともっと小さく作れたはずだ。 左端はジャンクのスイッチング電源。300円だったと思う。 |
・動作について
まだソフトを書ききっていないため、完全ではない。電池を装着すると放電モードになる。電圧が0.6Vになったら充電モードに切り替わり、タイマーで8時間ほど充電する。ニッカドの充電曲線でΔVを検出するようにソフトを変更したいのだが、ニッケル水素は特性が全く違うためこれの対応に苦慮しているのだ。もう少し電池の特性を研究しないとソフトが完成しない。
・その他
オペアンプを5V単一電源で動作させるにはコツがいる。同相入力電圧範囲が狭くなるため、入力ピンの電圧を十分に考慮する必要がある。でないとオペアンプが起動しなかったりする。
PICマイコンで文字列テーブルを扱う場合は、文字列がアドレスOxFFをまたがないようにする。アセンブラではなるべく先頭に文字列テーブルを持たせた方がいいだろう。これに気づくまで、ソースの位置により動作したり動作しなかったりした。PCのプログラミングばっかりやっていた者には理解に苦しむ動作である。また、IOピンの入出力切り替えはTris命令だとPort D,Port Eの設定が出来ない。これにもはまった。IO切り替えはバンク切り替えを使った方が混乱しなくてすむ。
16C74を8CHすべてAD入力に使うとリファレンスがVCCになる。従ってVCCを安定化する事はもちろん、今回のように電源電流が多く流れる場合はドロップ対策も必要だ。電源と基板が最短で結ばれているのはそのためだ。もちろん、基板のパターンでも電源コネクタ直下でマイコンとトランジスタ用に分岐している。8ビット分解能で、リファレンスのために電源電圧を5.12Vにしたため、LSBは20mVである。出来ればリファレンスを2.56Vにして、10mV/LSBにしたいところだ。
・開発について
秋月のPICライターを使っている。開発は付属のアセンブラ。Cも試してみたが、案の定コードが膨らみすぎて、メモリ1K限定版だと苦しい。マイコン、液晶、電源は秋月で買った。あとのパーツは千石がほとんど。プリント基板はフリーウェアのPCBEでパターンを作成し、レーザープリンタでOHPフィルムに出力する方法を採った。思ったより高精度にできあがる。パターンの太さは0.3mmまでは作成出来そうだ。
・回路図
ううっ。これ、ちょちょっと紙に書いただけの回路図しかないんだよな。
近日公開ってことでペンディングだ。
・プリント基板
PCBE基板パターンエディタで作成した回路図です。
charge-pcb.zip(8KB)
・ソフト
これも完全ではないため、そのうち。