LED回路工作部屋 > 赤外線リモコンで動作する受信回路 [e41] 【最終更新日 : 2015/2/9】
赤外線リモコンで動作する受信回路
■■■■■■ 受信回路について  ■■■■■■
 赤外線リモコンの送信機は名刺サイズの完成品が300円ほど手に入るので(※1)、よほどじゃない限り自分で作る必要はなさそうです。 受信側は用途に応じて動作するものを作らなくてはいけないので、赤外線リモコンのコードを解析して、送信されたコードとPICに登録したコードが一致した場合のみ動作する受信回路の実験を行ってみます。
 今回は受信回路の受信実験なので、下記の@〜Aの確認で終了です。
 @使用するリモコンのフォーマット解析およびコード解析。
 Aリモコンのボタンを押すと、受信したコードを解析して、コード別に割り当てた該当するLED(LED1〜3)を点灯させる。
 リモコンのボタンを押して受信回路の動作確認ができれば、あとは使用目的に応じて移植するだけである。LEDの代わりにリレー等を接続すれば、外部接続機器のON-OFF操作ができます。
 ※1 秋月:オプトサプライ赤外線リモコン[OE13KIR]


■■■■■■ 赤外線フォーマットの解析  ■■■■■■
 まず、実験で使用するテレビ用リモコンのフォーマット形式を調べてみました。
 PICで560μSごとに受信値("0" or "1")をピックアップし、8bitごとにパソコン上の解析ソフトに送信してコードを表示させてみました。
 下記がその受信したコードの配列です。

00000000 00000001 11111111 11111110 00000001 [1行]
01010101 00010100 01010001 00010001 00010100 [2行]
01010001 00010100 01000101 01010101 00010101 [3行]
00010001 00010001 00000000 00000000 00000000 [4行]
00000000 00000000 00000000 00000000 00000000 [5行]
00000001 11111111 11111110 00010000 00000000 [6行]
00000000 00000000 00000000 00000000 00000000 [7行]
00000000 00000000 00000000 00000000 00000000 [8行]
00000000 00000000 00000000 00000000 00000000 [9行]

 560μS = T とすると、[1行]目で "1"が16T "0"が8T 継続する。この部分はリーダーコードで「 "1"が16T "0"が8T 」のリーダーコードは「NEC フォーマット」に該当します。
 その後にデータコードが[10 = "0"] [1000 = "1"]で4Byte分続きます。



■■■■■■ 赤外線コードの解析  ■■■■■■
 受信したデータコード領域は[10 = "0"] [1000 = "1"]で表されているので、1ビットごとに変換していきます。
 PICでの変換方法の考え方は "1" または "0" の長さを基に変換してみました。
 リーダーコードの確認は "1" を受信してから 8ms 以上 "1" が継続すればリーダーコードと判別します。
 データコードは "1" から "0" に下がって "0" が 1ms 継続すれば "1" 、それ以外なら "0" と判別し、8bitを1byte として 4byte分格納してコードの比較を行います。
 ちなみに、今回使用したリモコンのコードは、ボタン1が 0A F5 B0 4F でした。ボタン2は 0A F5 70 8F でした。
 PICでは下記のように処理を行います。
 [リーダーコードの確認]
  ↓
 [データコードの解析と格納]
  ↓
 [格納データの送信] → [パソコンに受信コードを表示させる]
  ↓
 [格納データの照合] → [該当するLEDを点灯]




■■■■■■ ダウンロード  ■■■■■■
 上記回路で使用した PIC16F688 の HEXファイル と VBで作成した 赤外線コード解析ソフト です。
 NECフォーマットで動作します。
 ・PIC16F688のHEXファイル e41_688_sekigai.HEX (33KB)
 ・パソコン側で使用する赤外線コード解析ソフト sekigai_kaiseki.zip (161KB)