{{publish any}} {{tag 放電器,AVR,ATmega168,PWM,2SK2232}} !header バッテリー放電器の続き。ハードの基本設計はできたのでAVRのソフトウェアを作りこんでいます。AVRはATmega644Pを使う予定ですが、とりあえず、このままのブレットボードに組んだATmega168を使って作業します。 !body AVRStudio4とWinAVR(Cコンパイラ)で作れば、ATmega644PもATmega168もポートに対する機能アサインが多少違うだけで、ほとんど同じソースプログラムでいけると思います。 ・・・と思い込んで、前回の回路をより実践に近いものに変更してソフトウェアの作りこみをします。 たかだか1.2V/1A程度の負荷ですが、ブレットボード上で、MOS FETをPWMでスイッチングさせるとかなりノイジーです。AD変換ポートにはかなりのノイズが混じります。とりあえずいくつかローパスフィルタを追加して対処しています。 あと、電池容量を計算するのに正確な時間が必要となるので、外部にクリスタル発信器を追加しています。 {{image dischager_test.PNG,,alt:バッテリー放電実験の回路図,size:98%}} いつものごとく、ブレットボードの上がゴチャゴチャになっていきます。 LCDパネルは、16文字×2行のものを利用する予定ですが、開発中は、20文字×4行という広い?LCDパネルをつかって中間変数値などを表示させるようにして効率よく作業できるようにしています。 {{image DSC01495.jpg,,alt:ブレットボードでの実験,size:50%}} フル充電した単3ニッケル水素電池(定格2000mAH)を1000mAで放電中。カットオフ電圧は0.9Vとしています。LCD表示は、左上から設定電流、放電電流、PWM Duty値、電池電圧、経過秒、放電容量、動作モードとなっています。 {{image DSC01502.jpg,,alt:放電中のLCD表示画像,size:50%}} 放電完了。LCD表示は、放電容量、平均放電電圧、設定電流、経過秒、電圧合計、動作モードとなっています。 {{image DSC01504.jpg,,alt:放電完了時のLCD表示画像,size:50%}} 単3ニッケル水素電池を放電するのに1時間50分近くもかかっています。ちょっと時間がかかりすぎるので仕様変更してもっと放電電流を増やせるようにします。 インターネットで調べるとニッケル水素電池は単3なら3C、単4なら2Cまで放電電流が取れるようです。ただ、この値は瞬間値だと思うので、連続放電させると電池がかなり発熱すると思われます。とりあえず、単3で1C・・つまり2000mAHの電池を対象にして、2000mAまで流せるようにします。(これでも電池をいためる可能性があります。) 2000mAのテストは残念ながらブレットボードでは出来ないので、実際に製作してからテストしたいと思います。 ついでに、単4のニッケル水素電池も試してみます。 秋月電子で買った1個30円の電池ケースを使います。ケースにリードをつけてブレットボードに直接させるようにして・・・・が、電池を入れても電圧が出てきません。 {{image DSC01505.jpg,,alt:電池ケース画像1,size:50%}} この電池ケース、半田用端子と電池の接触するハトメがそのハトメ自身で圧着させている状態なのでかなりの確立で接触不良となっているようです。^^; とりあえず、半田用端子を使わずにハトメに直接半田づけします。 {{image DSC01513.jpg,,alt:電池ケース画像2,size:48%}}{{image DSC01514.jpg,,alt:電池ケース画像3,size:48%}} それでも電圧がでません。マイナス側のばねを見てみると、このばねもハトメで圧着されているようです。どうやらここが接触不良のようです。 {{image DSC01508.jpg,,alt:電池ケース画像4,size:50%}} 他のものを調べてみるとちゃんと導通しているものもあるようですが、メンドーなのでハトメとばねの根元を半田付けしました。 {{image DSC01509.jpg,,alt:電池ケース画像5,size:50%}} 放電器にこの電池ケースを使うかどうかはペンディングにしたいと思います。