正負両可変電源装置の製作
オペアンプをいろいろと実験したかったのですが、オペアンプは基本的に正負両電源を必要とします。
負電源を用意するのがなかなか大変なので、どうしようかと思っていたのですが、可変レギュレータ(正)LM317/(負)LM337をベースに作っているひとが何人かおられましたので、私も自作しました。トランスも内蔵しAC入力仕様としました。
イメージしていた仕様と実現度
内容 |
実現度 |
正負両可変電源出力でMax+/-16Vくらい |
○ レギュレータの仕様からMin値は+/-1.25Vです |
電流は500mAくらい流せれば十分 |
○ ヒートシンクとファンは付けています |
液晶に電圧表示 |
○ やっぱりこういうときは液晶ではなくアナログメータが見やすいですね。アナログメータの存在価値がやっとわかりました。 |
ついでに+5Vも出力 |
○(これが意外と便利) |
各ポートの電流を測定・監視 |
× せめてGNDだけでも電流管理しようと思っていたのですが、0.1Ωの電流検知抵抗を使用して、その両端電圧を測定しようと思ったのですが、精度が必要でうまくいっていません。今後の課題です。 |
主電源用LEDをフロントパネルにつける |
× 入れる場所がありませんでした。LCDのバックライトが代わりになるので、まあ、これは必要ないかなと思います。 |
できるだけ小さくしたい 8cm x 15cm x 20cmくらい |
○ (当初思っていたサイズとは違いますが、まあまあ小さく納まりました) |
ACから直接入力(トランスを内蔵) |
○ |
庫内温度管理して、ファンON・OFF |
○ マイコンでコントロールしています |
マイコンはArduino化したAtmel ATmega168 |
○ Arduino化したことによって、ほとんどソフト開発には時間が掛かりませんでした。これはよかったです。 |
完成写真
庫内温度表示
シャーシ
シャーシはタカチ電機工業のMB22(高さ:100mm・幅:120mm・奥行:160mm)を使用。
当初は基板を2つ折りにするつもりがなかったので、それに合うアルミケースを探していたのですが、ちょうどいいケースがなかったため、このケースを使用して2つ折りにすることにしました。
http://www.marutsu.co.jp/shohin_4627/
シャーシ加工
大変でした。初めてこういう作業をしたのですが、アルミの加工がこんなに大変だとは知りませんでした。ドリルで穴を開けてハンドリーマーで穴を広げてバリをヤスリで削って・・・これだけで1日以上掛かりました。エッジはあまりきれいになっていませんが、手作り感があっていいかも??
カバーの側面に付けた穴は空気を取り入れるために開けています。裏側の大きな穴はファンを取り付ける穴です。
基板部分
秋月で購入した安いユニバーサル基板4枚をベースに使用しています。(95x72mm)
回路の詳細は別途記載しています。
この基板を2つ折りして、スペーサでそれぞれ下の基板と固定します。
さらに、下の基板の足の部分はシャーシにネジ止めして固定します。
シャーシにスイッチ・端子・LCD・ファンを取り付けたところ
一部の端子の足が長すぎて基板とあたってしまいますので、ヤスリでゴリゴリと短く切りました。
LCD基板とシャーシの間にスペーサとしてナットをかまして、LCD基板とシャーシが直接触れないようにしています。
ワイヤーの端部は全て外部と接触しないように熱収縮チューブでカバーしています。熱収縮チューブは半田ゴテの先より少し手元の温度の低めのところをあてて収縮させています。わざわざ値段の高いヒートガンを買うは必要ないと思っています。
2つ折りした基板をこの中に入れます。
結構きちきちに入れるので、基板を入れたりコネクタを繋げるのに30分くらい掛かります。
回路図
製作後、あと付けで思い出しながら書き出しています。本来最初に作るべきですね。。
以下にそれぞれの回路について説明を加えています。
各部の説明
●トランス部
・RS-Onlineで購入したトロイダルコアのトランスです。
2入力の15V(実効値) 2出力トランスです。
・1AのFuseを使用
・Main SWはフロントパネルに接続しています。
AC100Vの高電圧を扱う部分なので、製作・使用には十分注意する必要があります。
●整流・平滑部
・ブリッジダイオードを正負それぞれに使用して、整流しています。
・平滑用のでっかい電解コンデンサ4700uF/3300uFも正負それぞれ使用しています。
邪魔なので、4700uFだけでもよかったかな?とも思っています。
これで約+/-21Vが生成されます。
ちなみに充電して、そのまま1日放っておいても18Vくらい充電されたままでした。どデカいコンデンサです。
・5V生成部
マイコン用と、ついでの外部出力用5Vを生成します。
どのように5Vを生成しようか考えたのですが、レギュレータを使用すると21Vから5Vの電圧差と電流の積が熱損失となってしまい非効率なので、効率を良いDCDCコンバータを使用することにしました。
DCDCコンバータもいろいろあるのですが、サイズや電流容量を考えて秋月のV7805-1000という1A出力のコンバータを使いました。(これひとつで630円もします。。)
http://akizukidenshi.com/catalog/g/gM-06350/
入力と出力に10uFと22uFのセラミックコンデンサが指定されているのですが、10uFのセラミックコンデンサと22uFのタンタルコンデンサを使用すると5Vがうまく出力されませんでしたので、入力と出力には電解コンデンサを使用しました。
電源周辺には直流抵抗成分の大きい電解コンデンサを使用するのはよくないとのことですが、動かなかったのでしょうがないです。
●コントローラ部
・マイコンはATmega168を使用しています。
マイコンはPICにしようかAtmelにしようか迷ったのですが、オペアンプの演算処理の逆算や温度算出計算が必要なのでC言語にしようと思い、Atmelにしました。PICのCコンパイラは基本的に有料ですので。さらに、ちょうど最近はやりのArduinoをいじってみたところ、ハード的には非常にシンプルで、かつソフトのライブラリも結構充実していそうに思いましたので、ピン数的にちょうどよさそうなATmega168をArduino化して使おうと思いました。
Arduinoについてはいろいろなところに解説していますので、ここで説明は省きます。あらかじめATmega168にはArduinoのブートローダを入れておく必要があります。
LCDのライブラリなど、そのまま使えますのでArduino化したのは正解でした。ソフト開発はほとんど時間が掛かりませんでした。
Arduinoのプログラムのことをスケッチというらしいのですが、今回作成したスケッチを載せておきます。スケッチを書き馴れていなかったり、プログラム容量も余裕があったりしましたので、あまり最適化はされていません。
Serial端子を通してプログラムを送りこみます。プログラムはSerial経由で書き込むために基本的に必要ないのですが、念のためにICSP用端子も設けています。
Arduinoは16MHzの水晶発振子を使っていますので、この基板上でも16MHzを使います。非同期シリアル通信のBaud Rateはこの周波数から生成しているはずですので、20MHzなどは使わず、16MHzは合わせておいたほうがよいでしょう。
・ネジ穴
フロントパネルのスイッチや端子とぶつかるため、基板上の2つのネジ穴を移動して別のところに穴を開けています。(青矢印)
・V+/-インプット
V+とV-をオペアンプで0〜5Vに変換し、ATmega168のADにインプットしています。オペアンプ回路は別の基板上で作っています。
・LM335温度測定
LM335で庫内温度を測定・監視しています。
30度以上になったらファンがオン、25度以下になったらオフするようにしています。温度は実際に使ってみて適当に調整します。
また、LM335にはキャリブレーション用に10kの半固定抵抗(多回転)を付けて、実測値と合うように調整します。このシステムの場合、1度くらいの誤差はどうってことないので、適当にキャリブレーションしました。
AD値から温度への換算方法はスケッチを参考にしてください。どこかネットから拾ってきた式をそのまま使っています。
・ファン駆動
PIOのひとつを出力に使い、ファンをオンしています。
DC 12V 50mm角のファンを5Vで駆動しています。
12Vで0.14Aですが、5Vでは0.04Aくらいです。40mAですので1815のトランジスタひとつで駆動できます。
・LCD
LCDはよくある1602のキャラクタディスプレイで、バックライト付きを選んでいます。
8ビットモードではなく4ビットモードで使用しています。
●電圧生成・オペアンプ部
・3端子レギュレータ部
この装置のメインのところです。
正電源用のレギュレータ(317)と負電源用のレギュレータで(337)を使って正負電圧を生成しています。
外部出力用の317/337にはヒートシンクをつけて、ある程度電流が流れて発熱することを想定しています。
R2は可変抵抗10kΩをフロントパネルのつまみとして引出し、R1には820Ωを使用し、正負それぞれMax約+/-16Vとなるようにしています。
また、装置内部のオペアンプ用に別途317/337を用意し、R2 10kΩ固定、R1 750Ωとし、上記電圧より若干高い+/-18Vを出力するようにし、オペアンプの正負電源として使用しています。
正電源用のレギュレータ(317)と負電源用のレギュレータで(337)でピンの配置が異なるので注意が必要です。このピン配置を間違えて、何度も配線をやり直し、裏の配線が結構きたなくなりました。。
ピン配置参考http://homepage2.nifty.com/~mhitaste/audiotop/wisdom_page/3terminalreg.html
317/337の抵抗計算ツールとして、以下のツールを使わせてもらいました。(337のピン配置間違えてない?)
・オペアンプ部
上記で作成した+/-18Vを電源として2回路入りのオペアンプIC NJM4558を2つ使って0〜-16Vと0〜+16Vのレンジを0〜+5Vの範囲にして、マイコンのAD入力につなげます。未使用の回路が1つあるのですが、ピンを浮いたままにして縛るのを忘れています。入力をGNDにしばればよいのでしょうか。。
オペアンプはシンプルに反転増幅として使用しています。
精度を上げるためにR1、R2は金属皮膜抵抗1%を使っています。
負電源は R1 40k、R2 10k で電圧を-1/4にしています。
正電源は R1 20k、R2 10k で電圧を-1/2にして、さらに同じ回路を通して-1/2にし、全体で1/4にしています。
マイコン上でそれぞれ-4倍と4倍して電圧値に換算しています。
(引用) http://www.arakin.dyndns.org/ec_opamp.php
反転増幅回路
この回路の増幅率は次のように考えます。
●フロントパネル
バナナクリップで電源を取り出します。
GND以外の出力にはそれぞれスイッチを付けて電源出力をコントロールしやすくしました。
●ファン
DC 12V 50mm角のファンを5Vで駆動しています。
12Vで0.14Aですが、5Vでは0.04Aくらいです。40mAですので1815のトランジスタひとつで駆動できます。
*仕様外の使い方をしていますので、いくら低い電圧といえども本来は避けるべきです。自己責任で使用すべきです。
この回路ではありませんが、昔、仕様外に低い電圧をある系に使うことによって変な発振が起こり、発火した事例を聞いたことがあります。