PICマイコンを使って測定ツールを作ってみよう(6) ―― PIC12F1822を搭載したRS-485ネットワーク対応のセンサ基板を作成

中西 紫朗

tag: 組み込み 電子回路

エレキ系DIY 2011年12月 7日

●OPアンプを使って0.1℃単位で温度を測定

 前回のマルチインターフェースPICマイコン基板による温度測定では,「LM35DZ」という温度センサのアナログ出力電圧を測定しました.今回もこの温度センサを使います.

 今回の構成では,アナログ値も測定できますし,PIC12F1822のA-Dコンバータでアナログ値をディジタル値に変換したものをRS-485で受信することも可能です.多数のセンサを接続する場合は,後者の方式が有利でしょう.

 センサ基板にはミシン目が入れてあります.これはセンサ部のみを切り離し,センサ基板との間をケーブルで延長できるようにするためです.センサ基板の外形寸法は約20mm×40mmで,これでも大きい場合はケーブル延長方式とします.この場合,センサ部のみの基板面積は10mm×20mm程度まで小さくできます.

 LM35DZは,平面部が上を向くようにして,足を下から見て,左が5V,中央が出力,右がGNDになります.2ワイヤGND基準方式で接続するので,ワイヤは2本のより対線(ツイスト・ペア線)で十分です.電流は5mAなので,電池駆動の場合は消費電流の少ない最新のLM61などを使ったほうが良いでしょう.温度が1度変わると10mV変動するので,5Vレンジでは500分の1の変動になります.

 PIC12F1822のA-Dコンバータは,PIC18F2550と同じように10ビットです.フルスケール1024で最小測定単位は5mVになるので,なんとか1℃単位の測定に対応できます.ここではOPアンプ回路をつけて,10倍に増幅しているので,0.1℃単位で測定できます.

 PICマイコンのリファレンス入力を利用すれば,フルスケール電圧を5Vからより小さい電圧に変更でき,0.1℃以下の刻みの測定も可能です.信号を送る方法はいろいろありますが,できるだけ配線数を少なくしたいときは2線式を使います.VCC(+5V)を基準電圧にとる方法と,GNDを基準電圧にとる方法の2方式がありますが,PICマイコンからみると,GNDを基準電圧にとったほうが測定しやすいでしょう.いずれも周囲温度+1℃が出力に出てきます.温度計測が可能な範囲は+2℃~+40℃です.この範囲を外れると誤差が大きくなりますが,使えないわけではありません.

 例えば工場でより対線を長く伸ばすとノイズを拾ってしまい,計測結果が不正確になります.ノイズに強い方式としてカレント・ループ方式がありますが,今回使うのは2線式GND基準出力回路です(図22).温度の校正は氷と沸騰水で行います.100℃になると誤差も増しますが,測定できないわけではありません.

 

図22 LM35DZによる温度測定回路(2線式GND基準出力)

 

 

●高分子材料の交流抵抗変化をもとに湿度を測定

 湿度センサにはGE Sensing社の「HS15P」を使用します.このセンサは,秋月電子通商で販売されており,安価に入手できます.湿度の検出には高分子材料の交流抵抗変化を利用しています.

 HS15Pは,結露状態でも測定できるという特徴を有しています.ただし,印加電圧は1kHzの交流でなければなりません.これはPICマイコンのクロックから生成しています.出力は指数関数値になるので,対数変換が必要です.これはPICマイコンのプログラムでエミュレートしていますが,コード領域が2Kワードなので,余裕がありません.

 測定可能な相対湿度は20%~100%ですが,実用的にはこれで十分でしょう.測定器には校正が必須です.簡単な方法は,市販の湿度センサを利用することです.蒸気を満たした密閉した容器の中で,ヒータを熱源にして温度を上げていきます.ただし,あまり精度の高い方法ではありません.いちおうの目安と考えてください.

 

●GaAsPフォトダイオードで紫外線を測定

 紫外線センサには,浜松フォトニクスの「G7189」を使用します.これも秋月電子通商で入手可能なセンサです.紫外線センサとしては安価ですが,GaAsP(ガリウムひ素リン)半導体を使うので,本当は高価なのかもしれません.昔,GaAs(ガリウムひ素)半導体が高価で,GHzクラスの発振器を作りたいのに指をくわえてカタログを見ていたことを思い出します.

 感度波長範囲は300Å~580Åで,最大感度波長は470Åです.非常に高抵抗で,検出も大変ですが,絶対定格電圧が5Vと低いため,取り扱いには注意が必要です.数あるフォトダイオードの一種であり,普通光でも十分反応します.最大感度波長近くの発光ダイオードで照らすと,激しく反応します.逆向きに電源に接続して,暗電流の変化を見ます.

 

●赤外線の測定にはリモコンの受信モジュールを利用

 赤外線センサにはPara Light Electronics 社の「PL-IRM0208」を使います.これは赤外線リモコンの受信モジュールとして使われています.大量に出回っているので,安価です.PL-IRM0208を使えば,リモコンのコマンドを読み取れます.

 

●電流トランスの代わりにノイズ抑制用の分割コアで電力を測定

 交流電力は,直流電力と比べて測定が厄介です.直流は平坦な一定値ですが,交流は極性が変化する交番電圧です.正弦波ならまだ良いのですが,ひずみのある波形が大半です.また電力には,実際の消費電力である有効電力と無効電力があります.複素数でいえば,実部と虚部に相当します.電圧と電流の積を皮相電力(見かけ上の電力)と呼び,これに力率をかけたものが有効電力になります.正確に有効電力を測定するのであれば,電圧と電流を測定し,その位相差を求め,掛け算する必要があります.

 今回は簡単に電流だけを測定し,力率を1として出力します.入力コネクタには,電流入力だけでなく,電圧入力もあるので,電圧トランスさえ設置できれば本当の交流電力を測定できます.しかし,ひずんだ波形のときは,正確な計算は困難になります.電流トランス(CT)は,市販品は高価で数千円以上します.

 精度は二の次にして,安価に交流電流を測定する方法はないかと探したところ,CTの代わりになりそうなものを見つけました.電源ケーブルのノイズ抑制に使われている分割コアです.これにUEW線(ポリウレタン皮膜のエナメル線)などを巻き,CTの代用とします.1A流しても数mVしか出てこないので精度はよくありませんが,一応,電流値に比例した電圧が出てきます.ただし,大きな電流を流すとすぐ飽和して,精度が落ちます.今回は,電力負荷として100Wの電球と1kW電熱器を用意しました.

 

●センサを接続して紫外線の検出結果を表示する

 それでは,センサによる計測の話に戻りましょう.

 前回は,LM35DZ単体で温度を計測しました.今回はRS-485ネットワークを使って計測結果を表示してみましょう.マルチインターフェースPIC基板をUSBケーブルでパソコンに接続します.そしてVB(Visual Basic)を起動し,後述する「MMRS-485 CLASS6 HEX」を実行します.画面に発行ボタンがあるので,相手先アドレスを選択して,ラジオボタンの「READコマンド」を選択し,発行ボタンをクリックします.そうすると,VBから発行したコマンド列と,マルチインターフェースPIC基板を経由してセンサ基板から返ってきたデータを含んだパケット列が16進数で表示されます(図23).

 

図23 RS-485ネットワーク・モードで温度を16進表示

 

 

 グラフを表示する場合は,「MMRS-485 CLASS6」を実行します(図24).

 

図24 RS-485ネットワーク・モードで温度をグラフ表示

 

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日