パソコン等から外部端子付きの電源をリモートコントロールする治具の制作

2012/05/09 7M4MON


概要

パソコンなどからRS-232CやGPIBを利用して制御できる電源は世の中に数多くありますが、結構なお値段がします。
対して、外部からリファレンスとなる電圧を供給してリモートコントロールするタイプの電源は意外に安価です?
というわけで、自作してみました。

方針


設計

D/Aコンバータを使用すればそれで試合終了なのですが、安価・シンプルにという方針により
手元に余っていた12F683のPWM機能を利用することにします。
PWMとはパルス幅変調のことで、デューティー比により実効値を変える方式です。
これをローパスフィルタに通すことでデューティー比に応じた電圧を得ることができます。
5Vで25.5Vを制御しますので、後段に5.1倍のアンプを付けることにします。
普通の非反転増幅回路で定数は1kΩと4.1kΩ(8.2kの2パラ)にしました。
オペアンプは下側が0V出れば良いのでLM358を採用。安いし。
LMC662等は電源の絶対最大定格が16Vなので25Vは制御できません。
16Vで使用してもいいのですが、その場合は最大出力が電源電圧-1.7V程度となります。

PWMの周波数は高ければ高いほうが都合がよいので、
マイコンの内蔵クロックを最速(8MHz)にして実験してみたところ、
PWMの周波数は最高約7.8kHzということが判明。

そこからローパスフィルタの定数をこ ちらを使用して検討すると、
キリの良い100kΩ,1uF使用時で最大リップル電圧が約1.6mV、
立ち上がり時間 0%→90%が約230msとなりました。(計算結果
オペアンプを通ったあとのリプル電圧は約8.2mVとなり十分な性能です。
立ち上がり時間も問題無いでしょう。

手元で操作できるようにロータリーエンコーダーを追加したり、
フィードバックがかけられるようにSENS端子を追加したりして出来た回路図が↓(クリックで拡大)


出来上がった写真が↓

冒頭の写真は↑にstake 様作のPICで 温度計を改造した表示部を載せたものです。

マイコンのHEXソース

パソコンのソフトが↓(クリックで実行ファイルダウンロード)


VB2008で作ってます。
スピンボックスの値が変化したら、バイト型に直してその値をシリアルポートに送るだけ。
つまり、「CByte(NumericUpDown1.Value * 10)」
データを受信したら値を整えて右のラベルに表示するだけ。
つまり、「(CInt(SerialPort1.ReadByte()) / 10).ToString("#0.0")」

測定結果



なんとなく誤差0.2V程度かと考えていたのですが、15Vまでは50mV以下、全レンジで100mV以下になった。
上々だと思います。

更に精度を上げたい場合は…

コスト集計

マイコン PIC12F683 100円
オペアンプ LM358N 17円
三端子レギュレータ 78L05 20円
抵抗コンデンサLED基板スイッチ 約150円

というわけで、だいたい300円で「パソコン等から外部端子付きの電源をリモート
コントロールする治具」が出来ちゃいました。すごいぞPICマイコン!

余談

たぶん、すでに誰かやってるだろうなぁ。
作ったあと気づいたけど、12F683のPWMって10bit分解能なのね。
最近は更に強い12F1822が683より安く売ってるのね。
最初はCOMETのCPS3200を外部からコントロール出来たらいいなという話だったのですが、
取説を読んだら抵抗だけで変化させるタイプで、外部リファレンス電圧は使わないのね。

WindowsPhone7から制御するお もちゃへ発展します。(PDF:700kB)