PIC16F819を使った電池電圧チェッカーの製作

2005-11-13

※トランジスタ技術2005年11月号に掲載されました。

2008-02-25

組み立てキットができました

組み立てキットの頒布を始めました。
詳細は、私の仕事場である(有)アクト電子のほうで紹介します。
http://homepage3.nifty.com/act-ele/batv21/batv1.htm
をご覧下さい。

単4用の電池ホルダーと単3用の電池ホルダーを乗せています。
基本回路は同じです。
負荷抵抗切り替えスイッチを中立位置ありのものにしましたので
「無負荷、4.7Ω負荷、1Ω負荷」3段階の切り替えができます。

試作回路(右側)と並べて撮ったところ↓。

※バッテリー放電器キット、導通チェッカー組み立てキットの頒布も継続しております。
   ・http://homepage3.nifty.com/act-ele/batdchg3/batdchg.htm
   ・http://homepage3.nifty.com/act-ele/buzzer/bzz1.htm

2005-02-07

電池の消耗具合を確かめるために

 デジタルカメラで使っているニッケル水素電池だけでなく、生野区青少年
指導員で使う「特小トランシーバ」用のアルカリ電池を数多く管理しなけれ
ばなりません。

 青指のトランシーバ、合計12台あり、1台あたり3本の単3型電池を使います。
使ったトランシーバーに合わせて3本の電池を別個に管理できればいいのですが、
たいていごちゃごちゃになってしまいます。
電池を買った時期により、いろんな品種の電池が入り交じり、ひどい場合は
アルカリとマンガンがごちゃ混ぜになります。
3本ごとうまく管理しているつもりでも、同一ロットの電池であっても使っているうち
に残量に差が出るのでしょう、テスターで測った電圧に違いが生じます。、


左中央の少し大きなものは「特小用のリピーター(中継器)」です。
これ1台を少し高さのあるところに置いておくと、半径300〜500mくらいの範囲で
電波が届きます。
夏祭りの地車警備や生野まつりで重宝しています。

テスターでチェック

 デジタルカメラ用のニッ水電池はさすがにごちゃ混ぜにはせず、ちゃんと管理はしていますが、
高容量ニッ水電池に関するトラブルで報告していますように、ごくまれに正しく充電されないことに
でくわしています。
重要な撮影では、充電不足に出くわさないよう、自作のバッテリチェッカ(放電器)で、充電直後の
電池を少しだけ放電させて電圧を調べ、4本の電池にばらつきがないか確認しています。
しかしこの装置、AC100Vが必要で「ガラ」も大きく、ちょっとどこかへ持っていく、という使い方は
できません。

 普段の電池チェックは、電池電圧チェック機能付きのテスターを利用しています。

1.5Vの電池チェックレンジがあります。

通常の電圧測定レンジでは、テスターの内部抵抗が高いので、無負荷に近い電圧を測ってしまうことになり、電池の消耗具合がわかりません。
電池チェックレンジでは「10Ω」の抵抗が並列に入り、電池の負荷になります。
このテスターの電池チェックレンジは電流レンジと共用です。
小型のボタン電池用、単3などの1.5V電池用、そして006P・9V電池が別レンジでチェックできるようになっています。
1.5V電池チェックレンジは、やはり10Ωほどの負荷抵抗です。


 「バッテリーチェッカー」として市販品(100円ショップでも売っている)がありますが、どれももう一つ
使い勝手が良くありません。
 赤:消耗  黄:そろそろ寿命  緑:まだ大丈夫
などと、色分けで示されるものが多いのですが、正確な値が読めないというのは、電気屋に
とって不満です。

メータの針を読むのは面倒です

 針式のアナログテスターとは長いつきあいですが、正確に値を読むのは面倒なものです。
しかし、電池チェック機能、たいていのデジタルテスターには装備されていません。
デジタルテスターで電池の消耗具合をチェックするするとなると、負荷抵抗を並列に入れて
電圧レンジで計るという操作が必要です。


 そこで今回、A/Dコンバータ内蔵のPICマイコンを使って電池の消耗具合を測る電池電圧チェッカーを
作ってみることにしました。
使ったのはPIC16F819という16F84などと同じ18ピンタイプのマイコンです。
10ビットのA/Dコンバータを内蔵しています。
電池に合わせて負荷抵抗を切り替えられるようにしてあり、3桁の7セグメントLEDに電圧値を表示します。
 もうひとつの機能として、スイッチを押している間、「無負荷時電圧 − 負荷時電圧」の値、つまり負荷を
かけたときにドロップした電圧値を表示することができます。
どのくらいの内部抵抗があるのか、推定することができるようにしています。
 負荷をかけて電流を流している時間を極力短くし、なるべく電池に負担をかけないようにしています。
およそ1秒サイクルで表示を行い、そのうちの約0.13秒間だけ負荷をつないで測定しています。
他の時間は無負荷です。

回路図

回路の説明

 PIC16F819のI/Oポートの割付にはいくつかの制限があります。
この点をよく考えなておかなければ、プログラムではどうにもなりませんので注意が必要です。

・A/Dコンバータの基準電圧は「AN3」に与えます。
・マイコンをSLEEPさせたとき、基準電圧ICに電流が流れないようにするため、
 出力ポートで供給を制御します。
・アルカリやマンガン電池をチェックするための抵抗(4.7Ω)とニッカドやニッケル水素電池を
 チェックするための低い値の抵抗(1Ω)を切り替えられるようにしています。
・測定する電池(電池ボックス)への配線は、配線による電圧ドロップの影響がないよう、
 4端子法で配線します。
・上の回路で試作したのですが、問題がありました。
  (1)スリープ時にSW1を押してしまうと、R12を通して電流が流れます。
    持ち運びの途中など、スイッチが押されてしまうと、知らない間に電池(3本組の電源用)が消耗
    してしまいます。
  (2)寿命が来た内部抵抗の大きな電池を測定した場合、放電時に現れる電圧変動がパルスとなって
    電池装着検出回路に入り、放電開始・終了のタイミングでマイコンにリセットがかかってしまいます。
    いつまでたっても、測定結果が表示されないのです。
・この対策として、
  (1)SW1のプルアップ抵抗を基準電圧の電源供給ポートにつなぎます。
    マイコンSLEEP時はLレベルになるので、不要な電流が流れません。
  (2)電池装着検出回路トランジスタのベースを、マイコン起動と同時にLに
    落とします。 電圧変動によるパルスが来ても、TR1のベースに不要な
    パルスは入らないので、誤ったリセットがかかりません。
 

新回路

訂正した回路図を示します。 (現時点での最新版、部品番号は上図と変わっています)

※放電用トランジスタ
 TR3とTR4による放電回路、電池電圧が低く(trのVbeの近づいたとき)なったとき、十分にスイッチしない可能性
 が考えられます。 Vgsが3VくらいでもきちんとスイッチできるパワーMOS-FETを捜してみたいと
 思います。
 どれか良いFETをご存じでしたらお教えください。
 「あっ、これ良さそうだ」っと思って調べたら「ディスコン:廃品種」になってたりで、FETに関して、「定盤デバイス」
 というのが決められないようです。・・・・悩んでいます。

 結局、トランジスタ駆動のまま、R17への電源供給を電池ではなくマイコン電源にしようかと
 思っています。(抵抗値は変えます)
 そうすると、測定する電池の電圧が下がってもTR4は確実に飽和するようになります。
 良いFETがあれば助かるのですけれど。

※まだ問題がありました→スライドスイッチ  (2005-01-29)
 負荷抵抗4.7Ωと1Ωの切り替えに小型スライドスイッチ(日本開閉器SS12)を使ったのですが
 この接点定格容量が0.1Aしかない(金メッキ品で0.4A)のです。
 これでは1Aを越える電流を切り替えることができません。
 あれこれスイッチのカタログを捜してみましたが、基板に取り付けられる小型スイッチはたいて
 い1A以下の容量しかなく、適当なものを探し出せていません。
 どうしたものでしょうね。

パワーMOS・FETを使ってみました

 大阪・日本橋の「コムスポット共立」の店頭で、東芝のパワーMOS・FET:2SK2232を売っていたので試しに使ってみました。
なんとか3Vでオンします。1A以上流しても、0.1V以内のVdsでした。
回路図を下に示します。 これが最終形態かと思います。 最終の組み立て写真などはそのうちに紹介します。


 あと解決すべき問題は放電抵抗切り替えのスライドスイッチです。
さぁて、どうしたものか。

外観

120×60×24mmのプラスチックケースに組み込んでいます。
表示部(7segLED)と制御部を別基板にして、あいだをリード線で渡っています。
コネクタを付けるスペースがないので、電線は直出し直付けです。
単3と単2電池をチェックできるようにしています。

電池の内部抵抗を推測するための機能

スイッチを押している間、「無負荷時電圧 − 負荷時電圧」の値を表示します。

制御タイミング

オシロスコープで観測した制御の様子を示します。


※電池を装着して測定が始まる様子

波形の説明。上から順に
 ・放電制御出力(RA7) Hでトランジスタがオンして電池が放電。約0.13秒間だけオン。
  この波形の立ち下がりタイミングで有負荷時の電池電圧を読みとっている。
 ・電池端子電圧 電池装着で1.3Vくらいに上昇。 放電時は0.2Vほど電圧が下がっているのが見える。
 ・マイコンのリセット入力。 電池装着でパルスが出ているのが見える。
  リセットによりSLEEP状態で眠っているマイコンが再起動し、電圧測定を始める。
 ・7segLED表示データ。 電池放電のタイミングで7segLEDを消灯し、測定サイクルで点滅表示している。

いろんな電池を計ってみると・・・

# 電池種別 負荷時電圧 無負荷時−負荷時 電圧差
4.7Ω 1Ω 4.7Ω 1Ω
1 松下 HHR-3SPS min2230mAh 1.34V 1.27V 0.03V 0.09V
2 三洋 HR-3UA   min2000mAh 1.32V 1.19V 0.05V 0.18V
3 タミヤ N-3U     700mAh 1.28V 1.22V 0.03V 0.08V
4 単3アルカリ新品(コーナン) 1.52V 1.31V 0.08V 0.27V
5 単3アルカリ使用済(コーナン) 1.26V 1.06V 0.10V 0.27V
6 松下 マンガン R6PU(NB)新品 1.50V 1.22V 0.15V 0.40V
7 松下 マンガン R6PU(NB)使用済 1.30V 1.07V 0.18V 0.41V

※ 1,2:ニッ水電池   3:ニッカド電池  充電直後の電池ではありません。

制御プログラム

2005-03-30

とりあえずソースファイルとHexデータファイルを示しておきます。
説明文は入っていません。 BATV1Aでは自分で基準電圧値を設定できます。
電圧差表示スイッチを押しながら測定する電池を装着してください。
2秒間押し続けているとVref値設定モードになります。

BATV1.LZH 電池電圧チェッカー
制御プログラム

(2005-01-22版)
BATV1A.LZH Vref電圧自己設定バージョン
(2005-03-02版)



電源用の電池を無くす!
測定する電池のパワーを使って制御・表示を行う

2005-03-28

 「リニアテクノロジー」の電源用昇圧DC-DCコンバータIC「LTC3400」が手に入りました。
「0.8V」あれば起動でき、乾電池1本を3.3Vに昇圧できるという特徴を持っています。
1Vを切ったようなヘタレた電池でも、パワーを供給できるエネルギーが残っていれば、
十分動作します。
いったん起動してしまえば、0.6V近くまで電圧が落ちてもパワーを吸い出してくれるのです。
 (詳細は http://www.linear.com/pc/productDetail.do?navId=H0,C1,C1003,C1042,C1031,C1060,P2130 をどうぞ)
さっそくこのデバイスを使って、電池電圧チェッカーの電源を測定する電池から引き出してみることにしました。
そうすれば、電池電圧チェッカーに電源の電池(現在3本)を入れておく必要がなくなります。


回路図


 リセット回路周辺がずいぶん簡単になりました。
ただ、LTC3400は表面実装パーツですので、組み立てにちょっとしたコツが必要です。


外観

電池ボックスは単3用だけを付けています。
放電抵抗切り替えスイッチも、電流容量の心配のない、ごくふつうのレバー式トグル・スイッチにしています。

左側、パワーFETの右にある6本足の小さなICが「LTC3400」です。
サンハヤトのシール基板を使って2.54mmピッチに変換しています。

従来のものと並べて写真を撮ってみました。
基本的な機能は同じですが、電池が入っていない分、軽くなっています。
測定する電池がからっけつだった場合、制御回路に必要なエネルギーが取り出せないと、
起動さえしません。
従来のものでは、リセットさえできる電圧さえあれば、とりあえず表示は出ました。
でも、今回のは、起動に必要な電圧までDC-DCコンバータの出力電圧が上昇しないこと
には、マイコンは走り出しませんので表示は出ません。

空きポート「RB7(-側)」と電源(+)間に圧電ブザー(発振回路内蔵タイプ)を付けて、
測定した電圧値をモールスコードで報知します。
その改造を施したのがし下の写真です。
フタに音が出る穴を開け、接着剤(ホット・ボンド)でブザーを取り付けています。
この機能の説明は下に記しています。


その後


・電池内蔵タイプもDC-DCコンタイプも、「基準電圧値」を自分で設定できるようにしています。
 LM358の電圧(標準は2.50V)が設定できるので、プログラムし直さなくても微妙なバラツキに対応できるよ
 うになりました。

・回路図を見ると、DC-DCコンタイプにはポートが一つ余っています。
 このポートに「自励式圧電ブザー」を付けて、測定した電圧値を「モールス」として音で出力するように
 しました。
 電池を装着して電池電圧の測定が始まると、7segLEDの表示とともに、モールス音で電圧値を知らせます。
 数字だけのモールスですので、符号は簡単に理解できるでしょう。

・モールス数字は略体で出力します。

・− −・・・・
・・− −・・・
・・・− −・・
・・・・− −・
・・・・・
1.23V なら 「・− ・・− ・・・−」
0.98V なら 「− −・ −・・」
と、音が出ます。


・モールス送出速度も設定できるようにしてあります。

・基準電圧、モールス速度ともPIC内のEEPROMに保存しています。

DC-DCコンバータタイプの制御プログラム

BATV21.LZH DC-DCコンバータタイプの制御プログラム
(2005-03-22版)


・電圧差表示スイッチを押しながら電池を装着します。
 2秒間押し続けていると、「rEF」と「SPd」と表示が切り替わりますので、
 いったんスイッチを離してから設定したい項目のときにプッシュしてください。

・rEFが基準電圧値、SPdがモールス送出速度です。

・スイッチ押すと値がインクリメントします。
 適当なところでおよそ2秒放置すると、設定した値がEEPROMに書き込まれます。

・設定完了で、電池を外します。

基準電圧設定の方法(フローチャートで)

※外部電源タイプでの操作


※DC−DCコンバータタイプでの操作

いずれも、「スイッチを押しながら測定する電池を装着」で設定モードになります。
「電池を外す」と設定モードの終了です。

電池関連の製作物と体験談

2006-04-05

http://homepage3.nifty.com/act-ele/batdchg3/batdchg.htm 放電テストに使い始めた新しいバッテリー放電器。
組み立てキットを頒布しています。
http://www.oct.zaq.ne.jp/i-garage/tool/batdchg3.htm 上の放電器を作った製作過程を紹介。(PIC16F88)
http://www.oct.zaq.ne.jp/i-garage/tool/batck.htm AVRマイコンを使ったバッテリー放電器の製作。
http://www.oct.zaq.ne.jp/i-garage/tool/batdchg2.htm マイコンを使わないバッテリー放電器の製作。
http://www.oct.zaq.ne.jp/i-garage/trbl/trbl1_4.htm 高容量ニッ水電池の充電で出会ったトラブル。
http://www.oct.zaq.ne.jp/i-garage/trbl/ekimore.htm 電池の液漏れ。
http://homepage3.nifty.com/act-ele/batdchg3/bathold/bathold.htm バッテリー放電器で使った電池ホルダーについて。
http://www.oct.zaq.ne.jp/i-garage/dimage/newbat.htm 三洋eneloopやメタハイ2600、三洋2700mAhなど新しい電池の特性を調べています。
http://www.oct.zaq.ne.jp/i-garage/dimage/dim_06.htm メタハイやトワイセルなど従来のニッ水電池について調べています。
http://www.oct.zaq.ne.jp/i-garage/sub2.htm 愛機DiMAGE7iに関する技術資料。
  (コニミノがカメラから撤退! 2006-01-19)



#NOBAT
#TESTER