自作電子小物/バッテリー残容量計/定抵抗放電式
自作電子小物/バッテリー残容量計/定抵抗放電式
Battery discharge capacities meter mini
2009年4月26日日曜日
ニッケル水素/ニッカド等の二次電池向けの残容量計です。電池をわざと使い切らせて、蓄積されていた電力量を表示します。(放電させないチェッカ程度の物は別小物に内蔵)そのため、アルカリ電池やマンガン電池等の使い切りの一次電池には、あまり意味はないものです。マイクロチップ社のマイコンPIC16F88で作製しました。一般的に、化学電池の残存蓄電量を正確に非放電で求める事は難しいようです。電池のデータシートを見ても、使用時の温度や放電レート、充放電回数、メモリ効果などの条件によっても容量が変動してしまう事から、容量の定義にさえも悩み始めてしまいます。充放電サイクル全てをモニタする等、機器と一体の仕組みで実現する手段もあるとの事ですが、結局の所予測でしかありません。
私の欲しい情報は、測定開始時点で電池の中に蓄積されていた電力量なので、実際に放電させての計測の方法をとりました。これまた一般的な話ですが、放電式計測の方法としては、一定電流を流して終止電圧迄の時間を指標値とする場合が多いようです。しかし、この小さな「小物」では「定抵抗方式」を選択しています。これは実際の使用環境を考えると、定電流よりは定電力もしくは定抵抗で消費していくのが実際的だと考えた為です。終止電圧になる迄の電流・電圧を計測し、取り出せた電力を積算する事で、測定開始時に蓄積されていた電力量を数値で示します。
<機能/特徴>
■単三、単四電池をセットして放置するだけ
■別途外部電源が不要
■測定開始時、開放電圧と負荷電圧が表示されるので、バッテリーチェッカ代わりにも使える
■メモリ効果をリセットする「リフレッシュ機能」や、空のコンディションを作り出す目的としても利用可能
■単純・部品数が少ないので簡単に作れる
<仕様>
名称:「簡易」バッテリー残容量計
分類:定抵抗放電式二次電池容量計
対応電池:単三型または単四形のニッカド(NiCd)、ニッケル水素(NiMH)二次電池を対象としていますが、最大3.0Vで終止電圧が1.0Vであれば何でも使用可能。
負荷:抵抗器11Ω(1.2Vで約110mAの電流)
測定時間:残容量により変わる。1.2V,2000mAhの場合、20時間以内。
表示内容:測定開始時に無負荷電圧を表示。放電中は電圧[V]と電流[mA]を相互に表示。測定終了時に順次[mWh]、[mAh]、経過時間[h]をフラッシュ表示し続けます。(計測終了したら長時間放置しないように)
外形:縦56mm、横72mm、高さ22mm
電源:特に不要。被測定電池の電力より供給。
製作費:約2000円ぐらい
左から電池をセットした直後で、無負荷状態での電圧1.41Vを数秒間表示。中央と右が放電中の電圧1.27Vと、電流135mAが1秒間隔で相互に表示されます。以下はその時の動画です。
基本的に、安く・少ない部品になるように考えています。通常必要と思われる部品は個人使用・自己責任と言う事で、可能な限り省略しています。
中核部分 は左側で、電池・電流計測用抵抗・負荷抵抗、スイッチ(FET)という何の取り柄も無い単純な回路です。流す電流条件は、通常良くある小物での消費電流の条件での容量を見たいので、100mA程度に設定しました。電池は1.2Vなので、オームの法則に従い10Ω程度の抵抗を使う事にします。この辺りは、可変にした方が測定器らしくなりますが、とりあえず固定でいいです。
右側 が計測・表示制御部で、ちょうど良い既製品がないのでマイコンを利用しますが、電流計測に[mV]クラスの電圧を取得出来る必要がありますので、Cypress Semiconductor社PSoC、もしくはTexas Instruments社のMSP430 F2xx当たりが私的な候補です。ですが、何といっても安く済ませたいので、我慢できる精度に出来そうだった事から、Microchip technorogy社のPIC16クラスを選択しました。18ピン位で10bitA/Dが付いている物なら何でもOKです。結局、少々もったいないのですが、買いにいくのが面倒なので手元に有ったPIC16F88にしました。なお、電源3.3V対応はLFバージョン(PIC16LF88)が必要ですが、Fバージョン(PIC16F88)でも動く個体もあるようです。CPUが暴走しても、発火したりする回路構成ではないし、せいぜい電池がダメ(過放電)になる程度ですのでFを使いましたが、通常は勧められません。実害を考えて選択する必要があると思います。
表示器は好みですが、私は7セグメント赤LEDにしました。
PSoC/CY8C27443との差額+120円とLEDドライブ用トランジスタ+100円が惜しくなければ、開発ツールにExpressを使えるので、簡単なクリプトで済むでしょう。かなり心惹かれましたが、この程度の「小物」には、やはりPSoCは勿体ないです。
中央 が制御部への電源供給のための昇圧型DC-DCコンバータ(ステップアップコンバータ)で、被測定電池より電力を取ります。電力が負荷抵抗で熱に変換されるだけなのは勿体ないので、負荷の一部に利用させて頂きます。制御系に平均10mAかかるとして、昇圧前が約3倍の30mAぐらいですので、3割負担と言った感じです。
今回、HOLTEK社のHT7733Aを使用してみました。Aバージョンでクロックが200KHzと高くなったせいか、推奨LCが少し小さくなっていたのは良いです。100uFのタンタルや積層セラミックは高価なので助かります。クリティカルな「小物」ではないので、各部品値はデータシート通りで、細かく試してみてはいません。軽々しく評価できませんが、今回のような条件では問題はないようです。参考としては、Vdd=5Vへの変更を試すためHT7750Aに単純置き換えしてみましたが、リプルがかなり大きくなってしまい、マイコン等の電源としては使えそうもありませんでした。多分インダクタのせいだと思いますが、深追いしていません。やはり、10mA程度の負荷とはいえ1V->5Vに昇圧するのは厳しいようで、きちんとデータシートを読み込まないとダメですね。
<部品>
*** 部品表 ***
区分 品名 数 金額 入手先
---------- --------------- -- ---- ------------------
マイコン PIC16F88 1 230 秋月電子通商
7セグLED C-533SR 1 200 秋月電子通商
電源IC HT7733A 1 50 秋月電子通商
SBD 11EQS10 1 52 マルツパーツ館
FET 2SK2231 1 102 マルツパーツ館
インダクタ 47uH(パワー系) 1 141 マルツパーツ館
コンデンサ 47uFタンタル16V 1 357 マルツパーツ館
22uFタンタル16V 1 152 マルツパーツ館
抵抗 1 1W 1 21 マルツパーツ館
10 5W 1 84 マルツパーツ館
1K 1/4W 8 30 マルツパーツ館
ICソケット 18丸ピン 1 50 秋月電子通商
蛇の目基板 P-00517 1 60 秋月電子通商
電池ホルダ BH-311P-1 1 30 秋月電子通商
---------- --------------- -- ---- ------------------
1559
ケース含まず、金額は参考
安い部品が見つけられれば1000円を切る事も可能だと思います。特にHT7733A用の大容量低ESRコンデンサ(積層セラミックやタンタル)は安くなって欲しいものです。
<ソースコード>
特に説明の必要も無いでしょうが、しいて説明するとしたら。
●アナログ入力ピンのローパスフィルタを省略したので、ソフトウエアで値をならしています。
●A/D値に補正は全くかけていません。精度を求めていないので。
●計測終了後の電力消費は最小にしなければならないので、SLEEPとWDT(ウオッチドッグタイマ)を組み合わせてフラッシュ表示させ、省エネしています。SLEEP時のWDT割り込みはリセットにはなりません。
●7セグメントLEDサブルーチンはCypress PSoC DesignerのAPIに似せて実装してあります。
●7セグメントLEDのダイナミックスキャン/表示リフレッシュのタイミング取りはTimer0の割り込みを使用しています。メインプログラムのイベントループ内でリフレッシュしても良いでしょう。なお、割り込みハンドラ内では1秒毎のカウンタも更新しています。
ソース構成は図のようになっています。他への流用を考え、A/D変換”adc.c”と7セグメントLED”led7seg.c”部分はサブルーチン化しました。
<ダウンロード>
MPLAB IDE プロジェクトファイル : <BDCM01.zip> (192KB) ※HI-TECH Cが必要です(Lite版でOK)
バージョン:0.1
リリース日:2009.4.25
ライセンス:未定義(各ソースファイルの主張の通り)
作成者:富樫豊彦 tog001@nifty.com
開発環境:
Microchip MPLAB IDE 8.20
HI-TECH C Tools for the PIC10/12/16 MCU Family Version 9.60PL5
PICkit 2 v2.60
<表示精度実測> (ブレッドボード上)
バッテリー電圧値: +-0.01程度の誤差。想像していたより良好。
バッテリー電流値: +-3mA前後の誤差。設計値(3.3V/10bit*1ohm=3.2mA/step)が緩いので、こんなものですか。通常、130mA程度流れますので5%位の誤差はOKだと考えます。
バッテリー容量値:
単三型NiMH 三洋電機エネループ HR-3UTG (1.2V typ2Ah min1.9Ah)
(1) 2.20Wh 1.76Ah 購入後2年、充電後2ヶ月放置していたもの
(2) 2.19Wh 1.76Ah 同上
(3) 2.20Wh 1.80Ah 同上、充電直後のもの
(4) 2.24Wh 1.81Ah 同上、充電から24h経過後の状態
単四型NiMH GP社 ReCyko+ 85AAAHCB (1.2V typ0.82Ah)
(5) 0.94Wh 0.79Ah 新品、追充電直後
(6) 0.93Wh 0.79Ah 同上、充電から8h経過後の状態
単三型マンガン電池 ダイソー(大創産業)BLACKマンガン乾電池R6PU8本組 (1.5V 仕様/製造メーカ不明)
(7) 664mWh 550mAh 新品
一品物なので、蛇の目基板で作ってしまいます。
左上DC-DCコンバータ部のタンタル/積層セラミックコンデンサが丁度良い物が無かったので、2個並列接続して所用の値を作っています。(入力・出力共)また、10Ωの負荷抵抗は10Wも必要ありませんが、これもなかったので。かなり場所を食うし勿体ないので、代用品が見つかったら交換します。そのために、リード線を1回巻きにし取り外した時に超短足にならないようにしておきます。
秋月の3連7セグLEDは1〜2mA位でも十分な明るさが出て扱いやすい物です。 実際光らすと、やはりリフレッシュレートが40.7Hz※なので若干チラツキが感じられます。どうしても気になるようだったプリスケーラの分周を下げて対応したいと思います。
(※クロック4MHz / Fosc分周4 / プリスケーラ分周32 / Timer0周期256 / 3桁)
電池ホルダは単三用ですが、単四形もうまくセットできます。
3連7セグLEDのおかげで、配線量がずっと少なくて済みます。(単独7セグLEDを多連で使用した事のある方は、半田付けの労力がいかにに大変か、お解りになるでしょう)
!!!セグメントの配線を逆順にしてしまいました。ハンダ付けしなおすのが面倒だったので、ソースコードの方を変更して対応する事にしましたが、後々考えるとあまり良くはないですね。
下部中央にISPコネクタを付けましたが、これも面倒になり未結線状態です。プログラムの書き換えが必要になった時にしましょう。たぶん変える必要はないと思いますので。
ケースはいつもの有り合わせのアクリル板を切り出し、曲げて作りました。側面は1枚の細長い板の4カ所を曲げて筒状にし、向かい合った部分を接着します。ふた・下面は、正確に切り出し、接着または穴あけ・ねじ止めします。切るのはプラカッターで簡単にできますが、曲げるのは専用の棒状のヒータ、接着剤も専用のものが必要です。
他の「小物」のように、2009年はこの外装デザインになっています。
表示がぼんやりに写っていますが、人間の目でみると、さほどでもありません。とは言え、小数点は見にくいので、何とかしたい所です。
<余談>
バッテリーチェッカは良く見かけますが、残容量を調べるテスタ類は手に入れにくいものです。そのため、Solar guide lampの製作で、充電池への蓄電量を調べる為に抵抗とDMMで長時間計測したりしていました。これらの作業の中で、放電レートによって取り出される容量が大きく変わったり、以前の使われ方によっても変わったり、寿命(年齢)があったり、電子部品らしからぬ挙動に悩まされました。よく、充電池は生ものと言うようですが、私もその通りだと感じました。とは言え、残量を何か推し量る術が欲しいと、ずっと思っていました。世の中には、放電させないでも容量が分かると言う夢のような装置もあるようです。個人では手が出るようなしろものではあありません。思っているだけでは何にもならないので、これまで手作業でやっていた計測(単純だけど目が離せない)を自動で行う物を作る事にしました。
部品がほとんど手元にあるもので済んだので、今回は笹原デンキ(「山形の秋葉原」と呼ばれる地元唯一の電子パーツショップ) に買い出しに行く必要もなく、何と3〜4日ぐらいで完成させる事が出来ました。
ごく簡単なものですが、これでSGLの開発が少し楽になると思います。
富樫 豊彦 tog001@nifty.com
Battery caapacities meter.
Constant registance discharge method.