とあるジャンク袋にこんなものが入っていました。

CIMG0311

0.022Ω 5Wのセメント抵抗 
これをシャント抵抗にすれば電流計が作れそうです。



まず仕組みを考えます。
今回はPICマイコンで検出・計算して7セグLEDで表示することにします。
マイコンは手元にあった18F13K22を使います。


シャント抵抗に電流を流します。
抵抗が5Wなので
√(5W / 0.022Ω) = 15.0755...
で約15Aまで流せる(つまり15Aまで測れる)事になります。いや15Aだと定格ギリギリなのでちょっと危ない気がするけど...

15A流した時でもシャント抵抗から発生する電圧は
0.022Ω * 15A = 0.33Vしか発生しません。
マイコンのADCの分解能が4mVなので4mVごとにしか測定できません。これでは180mAごとにしか測定できないことになってしまいます。
2mVごととか1mVごととか、それ以下でもできるっちゃできるけど、そこまでするとノイズの影響で値がふらつく思われるのでなるべく電圧を高くしたいんです。

そこでオペアンプを使ってシャントの電圧を増幅してからマイコンに入力することにします。
オペアンプは手元にあったLM358Nを使いました。オペアンプを自分で設計して使うことは初めてで何もわからないのでとりあえずこれを使います。

ADCで測れる最大電圧が4.096Vなので、約12倍すれば3.96Vで余裕を持って計測できることになります



LM358Nは電源-1.5Vまでしか増幅ができないらしいです。これはレールツーレールと言われるオペアンプを使えば解消できるらしいです。
電源は5Vなので3.5Vまでしか増幅できず、3.96Vまでは出力できません。

増幅値を約10倍にすればいいんですが、それだとADCをいっぱいまで使ってなくてなんだか気持ち悪いので、ADCで測れる最大電圧を2.048Vに変更することにします。

2.048V / 0.33V = 6.2なので6.2倍に増幅すればいいことになります。
増幅値は調節用に半固定抵抗で可変できるようにしておきます。


まとめると、シャント抵抗から発生した電圧(最大0.33V)を、オペアンプで6.2倍にしてからマイコンに入力します。
2mV(ADCの分解能) / 6.2(オペアンプ増幅値) / 0.022Ω = 15.1515...mA
これで15mAごとに測定できるようになりました。

まぁ色々計算してみたけど実際は適当でやってます。

マイコンのプログラムはADCで測定して計算させて表示するだけなので省略
オペアンプの入力オフセットの影響とかも考えて計算してやります。



そんなわけでとりあえず作ってみた

CIMG0316

デジタル直流電流計ですね。
制作費は400円位でした。 
7セグLEDはダイナミック点灯方式のものを使用。茶色の塩ビ板を貼っつけて見やすくしています。
どうせ自分が使うのは鉛蓄電池につなげて使うくらいだと思ったので、端子はファストン端子にしてみました。
矢印の向きに電流を流します。

CIMG0318

1.27mmピッチ基板を使ってみました。 
ICの足の間にも配線が通せるのでおすすめです。半田の難易度もそれほど高くないです。とか言って半田クッソ汚いけどね
シャント抵抗あたりは一応最大15A流れるので太めの銅線と銅板で配線してみました。放熱も兼ねています。
 
CIMG0312


動作風景

ブレボで実験中。5Vで負荷33Ω
計算値0.1515...A流れるはずなのでぴったり

amp1


鉛蓄電池に10Ωをつないでみた時。
1.18Aとか電池切れかけだね。

CIMG0320
 

ペルチェ素子つないだ時

amp2
CIMG0314
 
かなり適当に作ったのに意外と正確な値が出たので良かったです。
スペック的にも大きさ的にも非常に使いやすい感じ。
なんかこれのケース欲しいな。3Dプリンターとか使ったらいい感じに作れそう(3Dpりんたー持ってない)

でもやっぱりオペアンプあたりがどうもうまくいって無いようで...LM358NだとGND付近の微小信号の増幅には向いてないのかもしれません。
オペアンプ内臓のPICマイコンとかあったりするのでそれで作ってみても面白そう