簡易電子負荷をGPIB使用でマイコン制御に改造する
投稿日 2025年09月09日

簡易電子負荷(IGBT 2個並列で100W)をGPIBでパソコンから制御する
左上 GPIB回路(D7210使用) 左下Arduino UNO
中央 12bit DAコンバーター DAC80とシリパラ変換回路(TC4094)
今年に入ってDAコンバーターの動作確認と、GPIBのトーカー/リスナーの実験を行ってきましたが、今回はそれらを組み合わせて、以前作った簡易電子負荷をリモート制御しようという試みです。DAコンバーターはパラレル入力のR2R型DAコンバーターのDAC80を使いました。扱いやすいDAコンバーターです。GPIBは実験で使用したのと同じコントローラICのD7210を使いました。これらをマイコンのArduino UNOで制御し、GPIBでつながったパソコンからリモートで電子負荷のシンク電流値を設定します。精度、安定度の面でメーカー製のようにはいきませんが、他の計測器や電源と組み合わせて、自作機器もリモート制御できるのは大きなメリットです。
簡易電子負荷はIGBTを使用した単純な定電流回路です。シンク型で10A程度までなら簡単に作れ、電源の性能評価や、バッテリの負荷テストなどに欠かせません。多回転ボリュームを使用して、手動で電流値を設定しても十分使えますが、冒頭で書いたようにリモート制御で使いたいところです。簡易電子負荷については以下をご覧ください
電子負荷の定電流回路は、パワーMOSFETやIGBTを通過した電流をシャント抵抗に流してその電圧降下と、ボリュームで設定した比較電圧との差をOPアンプ(エラーアンプ)で検出し、ゲート電圧を制御する回路です。シャント抵抗が0.1Ωであれば電圧降下は1Aで0.1V、10Aで1Vとなります。
これをリモートで制御する場合は、比較電圧をDAコンバーターで作ります。GPIB経由でパソコンから送られてきた設定値をマイコンでデジタル・コードに変換し、DAコンバーターに与えれば自由に比較電圧が作れます。ただし、DAコンバーターの出力電圧がユニポーラの0から10Vとすると、シャント抵抗の電圧降下(0から1V)は小さすぎます。このため一般的にはシャント抵抗の電圧をOPアンプで増幅(この場合10倍)して比較するようにします。もうひとつの方法は逆に比較電圧を1/10にして比較する方法です。1/10の電圧は抵抗分圧回路で簡単にできます。今回は不確定要素が少ない後者の方法で行いました。DAC80については以下をご覧ください。
GPIBのリスナー/トーカーの回路は下の記事を参照ください。これは少し古い計測器などに組み込まれているGPIB機能に相当する部分を自作しようというものです。GPIBは速度の異なる様々な機器を同時にリスナー(受信側)にできる機能があり、ハンドシェイク(最も遅い機器の応答を待つよう応答信号がオープンコレクタでつながれている)という方法で実現されています。これはロジックで作ると面倒ですので、一般的にはGPIB専用ICを使います。(μP)D7210やTMS9914がそれにあたります。これらのICを使えばGPIBのコントローラーやリスナ、トーカーが簡単に作れますが、今回はパソコンをコントローラとして、送られてくる設定電流値を受け取るだけですのでリスナーを実装するだけで事足ります。
GPIBのリスナーはパソコンから送られてくる設定電流値を比較電圧に変換し、それをDAコンバーターのデジタル・コードに変換します。今回使用するDAコンバーターDAC80は12bitのパラレル入力です。マイコンのGPIOが十分あれば12本使用してDAコンバーターと繋いでもよいのですが、Arduino UNOでは足りません(多くをGPIBで使っている)ので、シフトレジスタを使ってシリアルからパラレルに変換しラッチしてDAコンバーターに与えることにしました。このシリアル - パラレル変換にはTC4094BPを2個使用しています。回路図を以下に示します。SN74595を使用することもできます。

シリパラ変換回路と12bit DAコンバーター DAC80
マイコンのGPIO 3本を使用し、12bitのデジタル。コード(CSB)をシリアルで転送し、TC4094でパラレルに変換してDAC80に与える
DAC80はユニポーラ 0 - 10V設定
今回の実験の様子は冒頭の画像を参照ください。電子負荷は100Wですので、電圧10Vのときは10Aまで。5Vの時は20Aまで流せます。それぞれ1Aステップで計測してみました。パソコンのエクセルに組み込んだVBAのプログラムからGPIBにコマンドを送信し、それを受けたArduino UNOマイコンは設定電流をDAC80が理解できる12ビットのCSBコードに変換し、シリアルで シフトレジスタTC4094に送ります。最後にTC4094のレジスタにラッチしたらDAC80がDA変換し、設定電圧を出力します。設定電圧は1/10され、電子負荷のエラーアンプでシャント抵抗(0.1Ω)の電圧と比較され、設定電流になるようにIGBTのゲート電圧を制御します。

電子負荷はIGBTを2個並列作動させた100Wまでのシンク型
今回の実験はあまり精度のよいものではありません。設定電流は数十mAレベルでの変動を許容しなければなりません。つまり1.000Aであれば1.0XXA程度の精度です。またバラック配線であることのほかに、シャント抵抗(今回使用は金属板型 0.1Ω 5W)の温度特性、電流値によるIGBTのON抵抗の変化などが変動要因です。このようなものを自作するといかにメーカー製の電子負荷がうまくできているかが分かります。まぁ、そこは簡易電子負荷ということで妥協です。
精度にはいささか不満は残るものの、自作の場合はプログラムを自由にいじれる点が良い点です。OF/OFFを繰り返したり、電流設定を階段状にプログラミングできるようにしたり、実際のシンク電流を電流センサーで計測して過電流保護を行ったり、ヒートシンクの温度を計測して熱保護を行ったり、いろいろ遊べる要素は多くあります。
(JF1VRR)