ニッケル水素電池の充放電器を製作しました。
    まだまだ未完成、不満足な部分は多いのですが、
    一応使えるようになったし、興味を持ってくれる方も
    いらっしゃるようなので報告します。
    
     概要
	 定電流充放電回路をAtmelの1チップマイコンAT90S8535でコントロールする
	 ニッケル水素用の充放電器です。 次の機能を持っています。
	 
	 
	  -  0.5C(800mA)の高速充電/放電
	  
 -  0.1C(160mA)の低速充電/放電
	  
 -  電圧、電流、経過時間、積算充放電量のLCDへの表示
	  
 -  RS-232Cインターフェースを経由してのコントロール、
	       電圧/電流の測定
	 
 
	 
	 充電プログラムは 1600mAのニッケル水素蓄電池用です。
	 電池の本数はは1本〜6本の範囲で設定可能です。
	 
	 以下の機能は未実装ですが、プログラムの追加だけでできるはずです。
	 
	 
	  -  いったん放電し、そのあと充電
	  
 -  これは、早く実装しないとまずいのだが...
	       -ΔVを検出しての充電停止
	  
 -  高速充電後の補充電、トリクル充電
	  
 -  充放電中の電圧変化をメモリに記憶、まとめてPCに転送
	  
 -  電池の内部抵抗測定
	  
 -  プリセットされた以外の充電設定のパネルでの変更
	 
 
	 
     
動機
	 
	 購入したデジカメNikon CoolPix-990用に秋月電子から
	 1660mAHのNiMH電池と高速充電器(キットじゃないほう)を購入し
	 使用したのですが、10分程度で充電が終了し、使用するとすぐに
	 電池切れになってまともに使えませんでした。
	 充電されないのも困りますが、充電の様子がまったくわからない
	 というのも面白くありません。
	 そこでかねて使ってみたかったAVRマイコンで、
	 充放電器を作ってみることにしました。
	 
     
開発課程
	 
	 開発の経過を以下に示します。
	 日記を書いていると、こういう時に良いなぁ。
	 
	 
	 
	 こうやって振り返ってみると 案外時間がかかってない(!?)です。
	 最初は部品の調達と設計を並行してやっています。
	 12月まででハードが大体できあがります。
	 1月ずっとAVRのプログラムをやっていた感じですが、
	 始めてのAVR、ひさしぶりのアセンブラプログラミングで
	 ブランチ毎に間違うというような状況で、
	 時間がかかりました。
	 最後の方で、ライブラリが揃って来ると随分楽になりました。
	 
     
回路図
	 回路図のPDFファイル (27Kbyte)
	 
	 中心になるのは定電流回路で、
	 参考文献[1]からそのまま持ってきました。
	 この回路にAVRからDA経由で電圧をかけてやって
	 電流をコントロールします。
	 
	 次に考えるのはのは、
	 充放電の切り替えをどうするかということです。
	 2つの方法が考えられます。
	 1つは充電回路と放電回路を別々に準備する方法ですが、
	 電流値を設定できるようにしようとすると回路が複雑になります。
	 もうひとつの方法は1つの定電流回路をリレーで切り替えて
	 充電と放電に使用する方法です。
	 手持ち部品に小型の使いやすいリレーがあったので、
	 今回はリレーを使うことにしました。
	 
	 また、リレーをもう1つ使い、充放電を行わないときには
	 充電池を完全に回路から切り離すことにしました。
	 電源を落としたり、リセットしたりすると このリレーにより
	 完全に切り離されますので 安心感がありますし、
	 充放電終了時に カチッと音がするのも楽しいです。
	 
	 AVRの書きこみ用の回路兼RS232Cインターフェースの回路を
	 内蔵しました。 この回路はChaNさんのホームページ[2]にある回路
	 をそのまま使用させていただきました。
	 
	 電流検出部の差動アンプで、調整用に半固定抵抗が2つ
	 入っていますが、結局面倒で調整していません。
	 ああ、いいかげん
	 
     
部品の入手
	 
	 回路図には書いてありませんが、
	 電源は昔秋月電子で買った5V1A,12V1Aのスイッチングレギュレータを
	 使用しています。 コンパクトで便利です。今でも600円位で
	 売っているようです。
	 
	 リレーは、なんでもいいのですが、松下のAG2327-9Vというものを
	 使いました。16PIN DIPサイズですし 値段も150円/個で藤商から
	 昔購入していたものです。パワートランジスタ 2SA1940やOPアンプ
	 TLC274CNその他細かい部品はサトー電気から購入しました。
	 OPアンプは片電源用のものを使用してください。
	 
     
ケース
	 
	 この充放電器は実際に使って行く予定のものですし、
	 AC100Vも使用しているので、ちゃんとケースに収めることに
	 しました。
	 
	 しかし まだうまくいっていません。
	 原因の1つは、基板を作る際になにも考えていなかったため、
	 でかくなりすぎたこと。
	 原因その2は、配置案が何度も変わってしまったことです。
	 
	 充放電器は日常的に使用するので、
	 できるだけコンパクトにまとめないと目障りです。
	 しかし、基板上で配置を決めるときにはまったく
	 そんなことは考えておらず、いつもの実験用基板を
	 作るのりで、配置を決めてしまいました。
	 そのため、けっこう大きいYM-200にすらはいらず、
	 YM-250を使用する羽目になってしまいました。
	 
	 ケースへの実装方法は、最初 上面に LCDディスプレイ、
	 スイッチ、電池ボックスなどを配置する方法を考えていました。
	 しかし、上面を使ってしまうと 場所をとりすぎて
	 収納に不便と考えるようになりました。
	 そういうわけで、LCDは上を向いているのに
	 いまだに、LCD用の穴を明けきらずにいます。
	 
	 うーむ、どうなるのだろう。
	 
     
ソフトウェア
	 ソフトウェアはAVRのアセンブラで記述され、1500行ほどです。
	 まだ、未完成だし、汚いままなので
	 公開するのはちょっと恥ずかしいなぁ。
	 ということで、まだ未公開です。
	 
     
反省(良かった点)
	 
	  - 全体の動作としては割とよくできていると思う。
	      自画自賛!
	  
 - リレー使ったのはヒット! つかってて安心。
	  
 - 電池との接続は ACアダプターのソケット+電池ボックスが便利。
	      ターミナルもあまり使わないけれど、見た目は良い。
	  
 - バックライト付LCDディスプレイは見やすい。
	 
 
	 
     
反省(悪かった点)
	 
	  -  D/Aコンバータは5bitで、 50mA/LSBぐらいになっています。
	      もうすこし分解能があっても良かったと思うので、
	      PortDを使用して8bitにするのが良いでしょう。
	  
 -  74HCT125を利用したRS232Cはお手軽といえばそうなのですが、
	      RS232Cを接続しないときに入力が不安定になり、
	      pull-up/down用の抵抗を追加することになってしまいました。
	      ここは素直にMAX232の類のレベルコンバータをいれるのが
	      いいでしょう。但しそうなると、論理が反転するので
	      ChaNさんのAVR書きこみプログラムや、通信ルーチンは
	      書きなおす必要があります。
	  
 -  現在の回路ではA/Dコンバータの読み出しで5LSB程度の
	      ノイズが載っています。 この辺はきちんと対策して
	      無理かもしらないけれど
	      1LSBぐらいまでに落とし込みたいものですね。
	  
 - R30,R11の半固定抵抗は不要。
	      精度1%程度の固定抵抗で組んだほうが良かったかも。
	      回路全体として10%程度の精度が達成できればいいのでは?
	  
 -  手持ち部品の トランジスタアレー μPA2003を使ったが、
	      7回路中2回路しか使っていない。2SC1815あたりで組んだ方が、
	      コンパクトになりそう。
	  
 -  12V2Aぐらいの電源をつかえば 1.6A 1時間の高速充電ができる?
	 
 
	 
     
今後?
	 
	 最大の問題は、ケースへの組み込み。
	 しかしこれを行うには基板から作りなおす必要がある。
	 もういちど手配線をやるのはつらすぎるので、
	 こんどやるとしたら感光基板でやるだろう。
	 その前に目標のケースを決めて、部品配置も決めてやらなければ
	 ならない。電源は秋月の12V2Aのやつをばらしてつかうかな、
	 とか言って本当に作るかどうかは不明。
	 
	 とりあえず、充放電特性をとって -ΔV検出機能を実装しないと
	 やばいかなぁ。
	 
     
-  
参考文献/URL
	 
	  -  トラ技 2000年1月号 
	       渡辺 明禎 『0〜10V, 0〜2AのCVCC電源の設計』
	  
 - ChaN氏のホームページページ
	       
	       http://elm-chan.org/reports/avrx/report.html