質問: 負電圧を正電圧に変換したい(pic ad変換) picマイコンを使いlcdにatx電源の電圧表示をする回路を組んでます。 使っているマイコンはad変換付きの16f877です。 3.3v,5v,12vは問題ないのですが、-12vの測定で悩んでます。 まだ試してないのですが 1・別途ad変換icを容易して-12vをgndにする 2・分圧しopアンプで反転・増幅して取り出す(出来るのでしょうか?) アドバイス・ヒントで構いません。よろしくお願いします。
回答: 使える電源が+3.3v、+5v、±12v しかないので、以下のように、±12v をopアンプの電源として(これは変動しても大丈夫)、入力を1/5に分圧してから3v電圧シフトすれば測定できます。+12v入力時には +5.4v、-12v入力のとき 0.6vが vout に出力されます。つまり vin = 5* ( vout - 3v ) という計算で vin を測定できます。 ┌────────┬─r7── +12v │ │+ 7├ c ┨ c1 3 ┏━━┷┓ ┷ - vin ─ r1 ─┬─┬──-┨+ ┠──┬─ r6 ─┬─── vout (a/d input) r2 c 2┌┨- ┃1 │ c gnd ───┼─┘ │┗┯━━┛ │ ┷ (0v) ┷ │4 ├ c ┨ │ │ │ │ ├─ )─ r4 ─-┘ │ │ │ └───────────-┬──-┬─r7─ -12v r3 r5 │- │ ┌──┤-5v c1 │ 7┏━━━┓5 vc │ │ ┷ + vc├─┨ +┠──┬─→vr ▼ zd │ ┃ -┠─┐c │ │ │ ┗━━━┛6 │└──┴──┤ └───────┘ ┷ 8 5 ┏━━━┓ ┬ ┴ ┤├ ┼ はつながってる配線 ) ┃top view ─)─ はつながっていない配線 ┗━━━┛ 1 4 r1 = 100kω*、r2 = 10kω*、r3 = 10kω*、r4 = 10kω* + 1kω* tl072 r5 = 10kω、r6 = 100ω、r7 = 100ω mjm4558など c = 0.1μf(積層セラミック)、c1 = 100μf(電解) zd = 3v~10v ツェナーダイオード、vrは 1kω~100kω、*は精度1% この回路で、r3の下側の電圧を vc とすれば vout = r2*( r3 + r4 )/{ r3*( r1 + r2 ) }*vin - r4/r3*vc となります。したがって r1 = 100kω、r2 = 10kω とすれば vout = 10/110*( 1 + r4/r3 )*vin - r4/r3*vc となるので 10/110*( 1 + r4/r3 ) = 1/5 とするには、r4/r3 = 1.1 ( 例えば r3 = 10kω、r4 = 11kω)とします。すると vout = vin/5 - 1.1*vc となります。- 1.1*vc の部分はキリの良い電圧のほうが計算しやすいので、たとえば - 1.1*vc = 3v と決めます。すると、vc = -2.7273v となり、結局 vout = vin/5 + 3v となります。 r1~r4 は変換精度に影響するので、精度1%の金属皮膜抵抗を使ったほうがいいでしょう。opアンプは2回路入りのnjm4558 やtl072など、バイアス電流が1μaを超えず、±12vの電源電圧に耐えるものなら何でも使えます。opアンプの電源端子(4, 8pin)についているコンデンサはパスコンですので電源pinの近くにつけてください。他の c は高周波のノイズ除去用ですが、これはなくても構わないかもしれません(測定対象がノイズの多いスイッチング電源なので念のために入れました)。vc の電圧(-2.7273v)は zd(ツェナーダイオード)の出力電圧をvr(可変抵抗)で分圧して作り出します。zdを使ったのは部品1個で済むためですが、zdが手元になければ、三端子レギュレータ [1] やシャントレギュレータ [2] でも構いません(最終的に -2.7273vが作れればいい)。+5v電源や±12v電源を分圧して 5v を作らなかったのは、電源電圧が変動するとこの基準電圧が変動してしまって意味がないからです。r7とc1は電源ラインのノイズ除去用です。c1の極性に注意してください。 [1] 5v三端子レギュレータ http://akizukidenshi.com/catalog/items2.php?q=%22i-01250%22&s=popularity&p=1&r=1&page=0&cl=1 [2] 5vシャントレギュレータ http://www.sengoku.co.jp/modules/sgk_cart/search.php?toku=%c8%be%c6%b3%c2%ce%c5%c5%b8%bb%c2%be&cond8=or&dai=&chu=&syo=&k3=0&pflg=n&list=2