き)2011年4月LM317Tを使った電圧源(電圧レギュレータ)を作りました。「スイッチングレギュレータを使った可変安定化電源」の最初に出てくる回路図のものです。ファンコントローラ」で作ったものと変わらないので、電圧計と電流計を組み込みました。電圧計が付いていると出力電圧を見ながら調整できるので便利です。電流計が付いていると接続した回路の消費電力が分かります。※一部コマ落ちしています。電源は例としてACアダプタ9Vです。本機器に電源スイッチはありません。表示は上段が電圧(V単位)、下段が電流(mA単位)です。起動時に3秒間それを表示します。ボリュームを回し、最小値から最大値まで。LM317Tの仕様では最小値1.25Vです。最大値は9V-3V=6Vが目安ですが7.6V出ています。出力を5Vに調整し、自作温度計を接続します。スイッチを押して電流を測定。ちなみにこの温度計のバックライトは5V時に110mA流れます。マイコンや温度センサに比べ、LEDが如何に電気を食うかが分かります。起動中は常時、連続して電圧と電流を測定しています。電流計はスイッチを押している間だけ機能し、それ以外では0.0mAと表示します。※スイッチオフのとき電流計のA/Dコンバータは入力0Vを測定し続けていることになる。電圧計は、10V未満は小数第二位まで、10V以上は小数第一位まで表示します。[10.0]V〜電流計は、100mA未満は小数第一位まで、100mA以上は整数部のみ表示します。1A以上もmA単位で表示します。データシートに記載なしLM317にはいくつかバリエーションがあります。この記事ではTO-220パッケージのLM317Tを対象とします。LM317Tの電流制限について時々見かける、「LM317Tに流せる電流は最大1.5A」という説明は誤りです。正しくは「LM317Tは1.5A流せることが保証されている」です。2.2A流して構いません(典型値)。「制限値の8割くらいまでで使うのがよい」という説明も見かけます。典型値2.2Vというのも納得です。まとめると、「LM317Tに1.5A流すのは余裕でセーフ」ということです。LM338(5A)が使えます。これほど大きな電流だと周辺の部品−−コネクタやスイッチ、ケーブル選びが難しくなります。5Aに耐えられる物を選ばなくてはなりません。DCジャックやスライドスイッチ、ヘッダーピンやコネクタ類は、2Aに耐えられる物なら多く見つかります。可変電圧源を作るにあたり、モーターやスピーカーを直接駆動するのでなければLM317Tを使うのがよさそうです。可変電圧源の出力を見るための簡易的な電圧計は、マイコンの内蔵A/Dコンバータ(以下ADC)を使って作れます。ADCの基準電圧より大きな電圧を測定するには、その電圧を分圧してADCに入力します。分圧抵抗の値はADCの入力インピーダンスを考慮して決めます。ATmega88はADCの入力インピーダンスが32kΩなので、分圧抵抗も十kΩオーダーで決めればよいでしょう。電圧計の製作例を探すと、分圧抵抗の例として「10kΩ:91kΩで約1/10にする」といった説明を見かけます。ADCの計算値を約10倍すれば測定電圧が求まるというものです。マイコン内で計算するなら、「約」ではなく「ちょうど」になる抵抗の組み合わせの方がよいと思います。「ちょうど10倍」ではない。5VのACアダプタを使う。2Vになると仮定する。※実際には2V程しか下がらなかったりするが、低ドロップアウト型でない三端子レギュレータは一般的に3V下がるものと考える。2VADCの基準電圧を2.5Vとしたとき、いずれの分圧比でも程良く収まります。「ちょうど4倍」「ちょうど6倍」で測定電圧が求まります。逆に、基準電圧の4倍,6倍までしか測定できないことに注意しましょう。※ADCは基準電圧以上の電圧を表せないので、10V以上は全て10Vと計算される。今回の製作ではマイコンにATmega88を使い(ADCの分解能は10bit)、動作電圧を3.3Vとしています。LM317Tとは別の三端子レギュレータから供給します。安定した電圧なのでADCの基準電圧として使っても構いません。この場合、ADCの1ステップは約3.3mVを表します。測定電圧は3.3mV以上から検出でき、3.3mV刻みで測定されます。13.2Vまで測定できます。電圧をより正確に測定するには細かい刻み幅の方がよいです。ADCの分解能は変えられないので基準電圧を小さくします。その目的でシャントレギュレータを使い、基準電圧を2.5Vとします。この場合、ADCの1ステップは約2.5mVを表します。測定電圧は2.5mV以上から検出でき、2.5mV刻みで測定されます。10.0Vまで測定できます。小さな電圧を正確に測定するには測定したい電圧が数十mV、数mVと小さい場合、分圧せずにそのままADCに入力します。ADCの刻み幅もそれに近い値なので(約2.5mV)、正確に測定できません。このようなときはOPアンプを使います。測定する電圧をOPアンプで10倍に増幅してADCに入力し、計算値を10で割るとOPアンプを通す前の電圧が求まります。見かけ上、ADCの刻み幅が1/10単位になったということです。0.25mV刻みで測定したことになる。このようにすれば1mVでも測定できるようになります。測定可能な電圧の最大値は、基準電圧の1/10までになってしまいます。※10倍に増幅した値が基準電圧以下でなければならないため。基準電圧が2.5Vなら250mVまでしか測定できない。OPアンプの増幅率を決める抵抗の誤差が計算で拡大され、そのまま測定誤差につながります。どんな電圧計を作るか抵抗による分圧にするか、OPアンプにするか。そこで迷うなら両方を組み込んで、測定レンジの切り替えができる電圧計にすればよいと思います。マイコンを活かして自動レンジ切り替えもできそうです。今回の製作では複雑さを避け、数mVの小さな電圧は測定しないことにして、抵抗による分圧を採用しました。自作電圧計の性能レポートグラフは、LM317Tの出力電圧を変化させたときの様子です。テスターの読みを基準とし、ADC変換値から算出した値(測定値)のズレ具合を見ます。LM317Tの出力電圧(電源:ACアダプタ9V)ADCの基準電圧はシャントレギュレータの2.5V。その値を境に、出力電圧が大きい範囲で測定値は1%ほど大きくなり、小さい範囲で1%ほど小さくなりました。マイコン内で計算する際にそれを補正することにします。ACアダプタ12Vのグラフにおいて、出力電圧が10V以上のとき測定値が目立ってズレています。これはADCの基準電圧が2.5Vで、分圧比が1/4であるためです。LM317Tの出力として当てにできる電圧です。電流計は電流を直接測定するのではなく、固定抵抗の電圧降下を測定し、オームの法則から計算で求めます。原理的に電圧計と同じです。この目的の抵抗をシャント抵抗と呼びます。電源から流れ出る電流を測定するには、電源ライン上にシャント抵抗を入れます。このときシャント抵抗の電圧降下の分だけ回路に掛かる電圧が小さくなります。そのためシャント抵抗はmΩ単位の小さな値が理想的です。測定できる電流の最小値は、電圧計のときと同様、ADCの基準電圧で決まります。1Ωとすると、ADCの1ステップは約2.5mVを表します(10bitのADCとして)。...測定電流は2.5mA以上から検出でき、2.5mA刻みで測定されます。※1mA単位やそれ以下の電流を測定するには、OPアンプを使ったり、分流したりする。電圧計と同じ原理なので工夫の仕方も同様。シャント抵抗の入れ方と測定方法シャント抵抗を回路に直列に入れるとき、回路から見て電源側に入れるか(ハイサイド)、グランド側に入れるか(ローサイド)の2通りが考えられます。この点について、下記説明が詳しいので参照してください。出力するという意味ではない。【ハイサイドで測定する】シャント抵抗(R-shunt)の電圧降下を測定します。前後に電圧計を置いて引き算するだけです。この回路においてVoutの電圧はADCの基準電圧より高いので、分圧してADCへ入力します(R1a,R1b;R2a,R2b)。シャント抵抗の電圧降下をその抵抗値で割れば(オームの法則)、回路に流れる電流が求まります。厳密には、分圧抵抗の誤差によりADC1とADC2の電圧計が同じ性質にならず、電流計の精度に影響を与えます。※どのみち測定器に誤差は付きものだ、誤差1%品の抵抗で許容(妥協)する、...いろいろな意見があると思う。【ローサイドで測定する】シャント抵抗(R-shunt)の電圧降下を測定します。片方はGNDなので測定は1カ所です。この回路においてシャント抵抗の値は十分小さいので(1Ω以下)、測定する電圧もADCの基準電圧より小さくなります。そのため分圧抵抗は不要で直接ADCへ入力できます。測定した電圧はシャント抵抗の電圧降下そのものなので、その抵抗値で割れば(オームの法則)、回路に流れる電流が求まります。ハイサイドの方法では電圧を2カ所測定する必要がありましたが、ローサイドの方法だと1カ所で済みます。このことから、電流計の精度はハイサイドの方法より高くなることが期待できます。※あくまで上記回路で比べた場合。常にハイサイド検出よりローサイド検出の方が精度が高いと言っているわけではない。どんな電流計を作るか今回の製作では複雑さを避け、またそれなりに精度が出せればと思ったので、ローサイドの方法を採用しました。ところで、シャント抵抗は値が小さいといえど抵抗器であるため、接続した回路で電流が変化するとシャント抵抗の電圧降下が変化します(ハイサイド、ローサイド関係なく)。このとき電圧レギュレータは一定の電圧を保っているので、回路に掛かる電圧が変化することになります。回路から見ると定電圧源に接続していることにならないのです。そこで、電流を測定したいときだけシャント抵抗が回路につながるようにしました。スイッチの切り替え忘れがないよう、また回路の性質上、プッシュ・オフスイッチを使います(押してオフ、放してオン)。左図はローサイドで測定する回路です。通常の状態でシャント抵抗はショートしており、そちらに電流は流れません。このとき回路のGNDは電圧レギュレータのGNDと共通になります。スイッチを押すとシャント抵抗が有効になり、電流が測定されます。このとき回路のGNDは電圧レギュレータのGNDから浮いた状態になります。抵抗値シャント抵抗の電圧降下が回路に及ぼす影響を小さくするため、シャント抵抗はmΩ単位の小さな値が理想的ですが、その点をあまり気にしなければ1Ωでも電流計は作れます。...12Vに対する割合は0.4%。回路に掛かる電圧は12V→11.95V。...5Vに対する割合は4%。回路に掛かる電圧は5V→4.8V。...5Vに対する割合は1.9%。回路に掛かる電圧は5V→4.9V。4.8Vから0.1V改善されます。※この違いを大きいと見るか、全然変わらないと見るか。自分は「ミニモーターギヤボックスとモーター制御」で0.1Vの違いは大きいと感じた。発熱量(消費電力)シャント抵抗は回路に直列に入れます。電圧レギュレータにLM317Tを使うとすると、シャント抵抗には1.5Aの電流が流れることが考えられます。抵抗に流れる電流が1Aオーダーともなると発熱量も結構な大きさになります。シャント抵抗を決めるとき、値だけでなく発熱量(すなわち消費電力)も考慮しなければなりません。※抵抗がどれだけ発熱するか。その熱量に抵抗が持ちこたえられるか。消費電力は電流の2乗に比例するので、電流が1Aを超えると急激に値が大きくなります。