APIC12F683,PIC16F88(ワンチップマイコン)を使ったアナログデータの赤外線通信
(入力アナログ2チャンネル,出力7セグメントLED3桁×2表示)
●概要
家電製品等の赤外線リモコンで使われている赤外線パルスにまねて,独自のフォーマットでデータを送受信するものです。
送信側では,入力は0-Vdd(5Vを想定)のアナログが1チャンネル、温度センサ用の入力が1チャンネルの合計2チャンネルあり,A/D変換した後,数値をパルス変調し,赤外線LEDで送信します。
受信側では,赤外線パルスを受け,数値を7セグメントLEDに表示するものです。
送信側には8ピンのPICを,受信側には18ピンのPICを用いています。
●お送りする部品リスト
部品名 | 型式等 | 数量 |
送信側PIC | 12F683 | 1個 |
受信側PIC | 16F88 | 1個 |
赤外線LED | 型式不明 | 1個 |
受光モジュール | PL-IRM0101-3※ | 1個 |
温度センサ | S8100B | 1個 |
7セグメント3桁LED | C-533SR | 2個 |
動作確認用LED | 赤、緑など、不明 | 1個 |
電源用コンデンサ | 100μF程度 | 1個 |
赤外線LEDドライブ用トランジスタ | IC=0.5〜1A程度 | 1個 |
抵抗 | 10, 510, 1k, 1MΩ | 各1個 |
5Vレギュレータ | 78M05(または相当品) | 1個 |
※PL-IRM1261-C438の場合があります。
●仕様
・送信側では電源をA/Dコンバータのレファレンスとして使っておりますので,安定した5Vの電源が必要です。
・A/D変換は10ビットです。
・出力される数値は3桁の10進表示です。表示スケールについては別途記載があります。
・通信に失敗した場合は,表示はホールドされます。正常に通信できるまで変化しません。
・データの通信間隔は最短で2秒程度必要です。5〜10秒間隔を推奨致します。
・一般のリモコン同様,赤外線は約38KHz(内蔵クロックを利用しているのでチップによりばらつきが有ります)で変調されています。
・送信距離は周囲の環境などによって大きく左右されます。
・他のリモコン類と干渉することが有ります。データ通信中に他のリモコンが働かなかったり,他のリモコンを動作させるとデータ通信に失敗することが有ります。
・テスト回路ではPICの出力から直接7セグメントLEDをダイナミックドライブしているため,表示がやや暗くなっています。必要に応じてドライブ回路を付加して下さい。
・同じセットを複数使用しても混信しないように,16種類の種別コードが埋め込まれています。(オプションであり,通常はこの機能は使えません)
●表示スケールについて
標準品では1チャンネルを温度計に割り振っていますが,もう1チャンネルでは,入力値0-5Vに対応してどのような数値を表示するかを選択できます。下記の例では送信側の電源として正確な5Vが与えられているとします。
@ 0−5Vに対して,0.00−5.00
A 0−5Vに対して,000−100
B 0−5Vに対して,000−999
C 0−5Vに対して,000−1000(3桁表示なので1000の場合最上位桁の1は表示されない)
※PICのA/D変換の特性(?)で、入力値として0V(または5V)としても、A/D変換後の数値が0(または0x3FFh)にならない場合が多々ありました。PICに出来るだけ近い電源部に比較的大きなコンデンサを付けることによって改善はされますが、絶対ではないです。10ビット値でおよそ1〜2程度は振れることがあります。ソフト的に零点補正は行いません。この点ご注意願います。上記の表示スケールは、A/Dコンバータの値が、0から0x3FFhまでの値を返してくれると想定した場合のものです。
※上記以外のスケールをご希望の方はプラス料金で対応致したいと思います。ただし、ご希望に添えない場合もあるかもしれませんので事前にお問い合わせください。リニアスケールならたぶん可能だと思います(例えば1−5Vに対して0.00〜3.00や、1−5Vに対して100〜-100など)。対数変換はたぶん無理ですし、動作の確認ができそうにありませんので対応不可能です。
●温度表示について
・温度計としてどの程度の精度があるかは調べておりません。精度の要求される用途には使わないでください。計測値は参考程度とお考えください。
・温度の測定範囲はセンサの使用範囲(-40〜+100℃)によります。ただし3桁である制約上、表示できるのは-9.9〜99.9の範囲です。
・表示は0.1℃単位ですが,精度上の分解能はおよそ0.6℃です。これは、サンプリング回数を増やして擬似的に0.1℃単位で表示しているからです。
・送信側PICのEEPROMデータを変更できる環境をお持ちならば,ある程度(±10℃程度)の校正は可能です。出荷時は室温において概略の確認・校正を行います(PICの仕様ではEEPROMにアクセスするためには電源電圧5.5Vが必要とありますが、温度センサは5.0Vで使用することを想定してプログラムしています)。
・電源電圧が異なればスパンが変わってしまうことになります。私のテスト回路では汎用のレギュレータを使用していますが、どの程度正確な5Vであるかは測定出来ませんし保証も出来ません。また、電源電圧が温度特性を持つ場合も注意が必要です。例えば、温度センサーが30℃に置かれた環境で、電源電圧が5.0Vから5.1Vに変化すると表示される温度は計算上約3.6℃程度低く表示されることになります(だと思います)。
・温度センサの特性は、データシートによれば、-20℃〜80℃までの平均で-8.13mV/Kの温度特性を有しています。このPICでは、-8.146mV/Kとして演算しています(そもそもこのセンサのリニアリティは、それほど高くはありません。30℃〜80℃までの平均では-8.26mV/Kです(計算間違いしていたらすみません))。温度表示は参考程度ということでお願いいたします。
●応用例
・気温などの遠隔測定
屋外の温度を測定したいが,屋外に電源はあるが,線を引き回すのが困難な場合など
・太陽熱温水器の温度の計測とタンク残量の計測(試作中)
・電圧の遠隔測定
0〜5Vの遠隔測定
★仕様変更対応の範囲
・データの通信周期(2秒〜600秒)(正確ではありません。目安程度とお考え下さい)
・表示スケールの変更(上記@〜C及び温度表示の中から選択)
★関連部品の追加お取り引き
ココに一覧表があります。必要な部品がございましたらご連絡ください。

テスト回路(受信部。上は温度を、下は電圧を表示している)

テスト回路の回路図
●オークション関係トップページへ(他にもいろいろと出品しています)
●PIC関連の出品物の入札を考えている方に(必ずお読み下さい)