その8 外部供給電源の単一化に挑戦!105円のDC-DCコンバーターを利用する!湿度センサーにも挑戦!
さて、外部からの電源供給を単一電源にして小型化したいが、どうすればいいのか? 温度センサー部OPアンプ回路が単一電源で、その出力は最大VCC-1.5Vである事から、 VCCが5Vであれば最大出力は3.5Vまでとなってしまう。 0℃で0V、50℃で5Vになるような出力を得る為には、 どうしてもOPアンプ回路部分に6.5V以上の別電源が必要となってしまう。 12V電源から、3端子安定化ICを使って5Vを供給してみたが、 安定化ICの発熱が激しく、CPU用の放熱フィン程のものが無いと耐えられそうも無い。 とても小型化できないし、装置内部の温度が上がってしまい、 何を測定しているのか解らなくなってしまう。 もっとも、Xport自身も相当発熱するので注意が必要! そこで、DC-DCコンバーターで5Vから12Vをアップコンバートして造る事を思いついた。 既製品のDC-DCコンバーターが無いか調べてたが、なかなか良さそうなものが見つからない。 そんなときに、105円で販売されているDC-DCコンバーターの改造記事をネット上で見つけた。 車のシガーライターソケット(DC12V〜24V)からDC-DCコンバーターで5Vを造り、 USB端子から携帯の充電、MPプレーヤーの充電を行うというもの! これを改造して電池などで2V〜3Vの供給して、5Vを造って発光ダイオードを光らせようというのだ。 この回路図と、このICのデーターシートから、この部品を利用して若干の部品を加えて別回路を組み、 5Vを供給してアップコンバートし12Vを得られる回路が組み立てられる事が解った。 必要な電力は、OPアンプ1回路分なのでパワーはいらない!出力が安定していればそれでいい! 100円ショップのセリアにて購入! これがうまく行った!! 望み通りの安定した動作が得られた!・・・DC12.00Vとしては! ところが、温度表示がばらついて安定しない。あれ?! さっきまでは,大型の多電源出力の安定化ユニットから5Vを供給し、 その5Vから12VをDC-DCコンバーターで供給して、とても安定していたのだ。 しかし、いつまでも大きな安定化電源ユニットを使っている訳にはいかない。 5Vの小型外部電源アダプターに問題があったのだ! 約5V(今回は5.15Vあった)から12.00Vを安定して得られ、 ようやく 外部的には単一電源化されたのに、 またしても大型の外部安定化電源から離れられない。 大型の外部安定化電源や、3端子安定化電源IC等は、間違いなく発熱源でもある為に、 アダプターのような小型化された電源部分でA/D変換部から分離したいのだ! 試しに、DC5V簡易外部電源アダプターのラインに、 220μ16Vの電解コンデンサーを入れてみた。 あーら不思議! 温度表示がかなり安定したではないか。 ということは、5Vアダプターの出力にリップル影響されていると言う事に他ならない! 実は、これだけでは解決していなかった事が後で解ったが、糸口はつかめた。 (最終的には、1000μの電解コンデンサーを、5Vと12Vラインに追加した。) 確かに、PICのA/D変換部は、 今回 このDC5V(正確には今回5.15Vあった)を基準に変換しているのだから、 ここが安定していなくてはどうにもならない! 12V出力は安定するように元の100μを1000μ(C3)に変更して出力側にいれてある。 これも、後から解った事だが数百μぐらいでは足りないのだ。 DC-DCアップバーターの回路は、非常に安定していて、しかも全く発熱がない!これは便利! もちろん、この回路はパワーは無いが今回の仕様ではこれで十分だ! これで、外部電源アダプターを使った単一電源仕様の回路となり、小型化できてすっきりするはず。 今度は、通信部分を取り除き、表示部分を7セグメントLED3桁のダイナミック点灯にて表示して、 くっきり単体で見えるような室内使用にしてみようと思う! 現在ハード回路組み立て中!詳細はまたこんどね! テスト用にくみ上げたDC5V-DC12.00Vアップコンバーター回路(200Ωの抵抗が無かったので100Ω2本を直列にして代用しています。) 80%流用部品で完成させたDC5V-IN DC12VOUT のアップコンバーター回路 R2,R4,VR1,C3等が元の部品と異なります。 IC1の34063は、IR3M03Aが使われている場合もありますが、完全なコンパチ品ですので回路は同じです。
外部電源をDC5V(実際には5.15Vだった)アダプター1個とし、 イーサネット部分を削除、表示部分を7SEG-LED3桁として、 小型化できた!約70mm角以内になった。 四角い基盤の右4分の1がDC5V-DC12Vアップバーター部分。 この部分のほとんどの部品が105円で手に入った。 でも、右下に見える基盤は何?(左下は、湿度センサーモジュール:【HSM20G】マルツ電波にて購入) このモジュールの温度(℃)出力は今回使っていません。湿度出力のみ使用しています。 さて、この湿度計ユニットは、そのままDCVを計ってやれば特に付け加える部品は無く、 出力も、約5Vの外部電源アダプターで供給してやっても、 非常に安定した出力が得られた。 だが、その出力特性がやや問題で、 資料のグラフから目分量で何とか日常で使いそうな部分をうまく1次曲線で近似をしてみた。 Y(%RH)=( X - 0.3) × 29 ; ただし、X の単位は1V。 我ながら、実にうまく近似できたと思う! (自画自讃!) でも、PIC内部で16ビット演算のかけ算を行うサブルーチンが必要になってしまった。 LM35の温度計部分は、PIC外部にOPアンプを使っているので、 ここで倍率を調整できてしまう為、 便利かもしれない! さて、さて、実はここからが本当の苦労が! 温度計ユニットが以外とうまくいった事でいい気になった私は、 んじゃあ、湿度計も組み込んじゃえ!と、簡単に考えてしまった。 だが、その事がその後本当の意味での、A/D変換機としてのPICを使用する場合の基礎知識の無さが露呈してしまった。 ま、趣味だし・・・ LM35Aの温度(℃)センサーのA/D変換結果は、小数点以下まで割と安定しているのに、 湿度(%RH)センサーのA/D変換結果が全く安定しない!いったいなぜだろう?目を疑った! 発振でもしてしまっているのか?安物オシロスコープを何とか直して観察! うーん発振はしていないが、DC5Vの外部電源アダプターのAC成分に微小なのこぎり派やノイズが目立つ! 湿度センサーの出力値をデジタルテスターで直接読取ってみたが、 ぴたっと安定していて特に問題はなさそう、うーむ・・・ 基本に立ち返って、5Vの電源電圧をVRで分圧してA/D変換してみて驚いた。 0V-5Vをデジタルテスターで直読みしながら段階的にPICのA/Dへ入力。 単純に1024段階で3桁表示をしてみた。 2.5Vで51.0付近で表示されればOKなのだが・・・ げげげ!先頭の1桁目すら安定しない!!えー!なんで?! これでは全く使い物にならない!!(何でLM35A温度計はうまく行っているのか、奇跡的だ!) ノイズか?いや、オシロで見る限り問題は無い! PICを壊したか? A/D入力端子を変えてみたり、PICそのものを新品に変えてみたが変化は無い! 温度表示は別として(?)、湿度計としてはこのままでは使えない! やっぱり、電源部のリップルが問題か?! 電源部分を簡易アダプター1個で済ますのは不可能なのか? あーあ、残念・・・ もう一度PICのA/D変換制作記事をもう一回丁寧にネットで探してみた・・・ やっぱりあった!! PICには、A/D変換の確度(正確さや、安定性)を上げる為に、VDD,VSS以外に、 外部からA/D変換する際の正確で安定した基準電圧を加える方法が備わっているのでした。 基準電圧をTL431CPというICで5Vから4.00Vを発生させてPICのVREF+、VREF-端子に入れる方法です! この回路で、VERF+側のみ4.00Vの基準電圧をTL431CPで造って入力するようにハードを変更。 このTL431CPは、あくまで基準電圧専用のICでこのままではパワーはありませんが、 電源電圧の5Vに関係なく、その出力はR1,R2の比で決まり、 Vout=(1+R1/R2)×Vref ・・・(1) ここで、VrefはこのIC内部で造られている基準電圧で2.5V、 Voutを4.0V、R1を3000とすれば、R2は5000となり、 VRで調整するような上記の回路となる訳です。 なお、R1,R2部分には金属皮膜抵抗等の温度係数が同一で低いものを使用して R1/R2 の値を変化させないようにします。 でも、この方法には欠点があるのです。 PICのA/D変換範囲が-VREFから+VREFに狭くなってしまうのです。 今回はVref-は使用していないので0Vから4.0Vを1024段階でバイナリー10ビットでA/D変換されます。 うーん、4.00Vが1024だから・・・29倍するのはPICで面倒なので、えーと・・・ PICでの1bit分は、0.0391V??うーん、じゃあなくて4V/1024だから、1V/256。 これを29倍して、さらにPIC内で小数点は扱いたくないので10倍して、 1bit=29×10/256=1.13・・・え、この数字どっかで見たような・・・1/8=0.125 やったー!これは、簡単かも! おおー!A/D返還後に、0.3Vに当る77(0.3×1024/4=76.8)--> 0x4dをバイナリー16ビット演算で引いておいて、 後から1.13倍すれば良い! 1.13=1+0.13 この0.13倍というのは、約1/8(=0.125)なので、 さっきの演算結果に、それを3回バイナリーで右シフトしたものを、 加えてやれば良いじゃん! プログラムを変更したところ、 湿度計の表示が3桁までビシッと安定し、大感激!!(右端の写真がTL431CPを使った基準電圧回路) ま、湿度センサーが5%の誤差があるので、小数点以下の桁は当てにはなりませんが・・・ 今回は+VREFのみ4.00Vを入れてみることにしました。 A/D変改範囲が、0Vから4Vで1024分割される事になります。 幸い 湿度計ユニットは、必要な変換範囲が、0.75Vから3.2Vで、4V以内に収まっているので良いのですが 温度計ユニットは0Vから5Vを想定していたので・・・うーむ、OPアンプの倍率を上げて対応してみよう! これも、現行の回路のVRの調整範囲内でうまく行きました。 さて、個々のPIC実験用に1個のハードに温度センサーと、湿度センサーの両方が組み込まれましたが、 ソフトウエアが未だバラバラです。さーて、どうしようか? 3桁の7SEG-LEDでどうやって両方を表示させようか、 あるいは、もう3桁7SEG-LED表示を追加しようか等と迷っています。 いままで、1つの回路でAN0端子に温度データー、AN1端子に湿度データーを入加えて、 別のプログラムをいちいち入れ替えて実験してきたのです。 今度はA/D変換をきっちりチャンネルを切換えて1つのプログラムで変換するには、 チャンネル切り替え後のA/Dユニット内のチャージ時間を考えなければいけない気がします。 今回の結論は! ○簡易外部電源は、その名通り簡易電源なので5V用といっても5%の誤差があり、 デジタル回路以外の精密測定回路にそのまま使用するには、当然問題がある。 --これを回避する方法として、A/D変換部分などには基準電圧回路を別途必要となる。 ○5V電源ライン、および、12V電源ラインに必ず大容量(1000μ程度)の電解コンデンサーを入れておく事! A/D変換にリップルが入り込み安定した変換ができない! でした。 しかし、この程度の温度-湿度計なら、量販店で3000円ぐらいで、もっと格好いいものが手軽に手に入る! また、データーロガー形式のものでも、1万円以下で手に入る。 ケースも無いし・・・ま、趣味だからこれでいいか! この辺の詳しい事(ハード回路、ソフトウエア)は、また別のページで!(いつになることやら)