ボクにもわかる地上デジタル 地デジ方式編 - 赤外線リモコン方式


赤外線リモコンの例

リモコンについて

 このページでは、家製協方式、NEC方式、SONY SIRC方式の各赤外線リモコン方式について説明します。
 なお、3Dメガネ用の赤外線信号については、「方式編-3D映像方式」を参照してください。

目次

赤外線リモコンの動作原理

 まずは、赤外線リモコンの仕組みから説明します。赤外線リモコンは搬送波(キャリア)に約940nm(900〜950nm前後)の赤外線を使用しています。そして、約38kHz(33〜40kHz前後)の副搬送波を使って赤外線の発光と非発光を繰り返す振幅変調ASK(Amplitude Shift Keying)方式とパルス位置変調PPM(Pulse Posistion Modulation)方式を組み合わせた二つの変調を行って情報を送信します。
 送信する情報の生成方法は、約38kHzの副搬送波に対して約700bpsの速度のパルス位置変調方式PPMによる一次変調を行い、この信号を赤外線発光ダイオード(LED)に供給することで振幅変調方式ASKによる二次変調が行われます。
 なお、二次目の振幅変調は発光ダイオードに電流を流しているだけなので、変調であることをあまり意識しなくても設計が可能です。このため、二次目の変調を省略して考える場合も多く、この場合は前述の副搬送波のことを単に搬送波と呼びます。

赤外線リモコンの変調方式
段階 方式 搬送波 変調信号 実装方法
一次変調 PPM 約38kHz 約700bps マイコン/論理回路
二次変調 ASK 約740nm 一次変調波 赤外LED

パルス位置変調方式の変調方法(一次変調)

 パルス位置変調方式(以下PPM)とは、情報をパルスの位置で示す変調方式です。PPM方式には2つの処理が含まれており、まず、パルス位置を示す信号を生成する符号化を行ってから、生成した信号に振幅変調を行います。

 始めに、パルス位置符号の符号化方法から説明します。下図はパルス位置符号の一例で、情報が0の時はOFFの時間が短く、情報が1の場合はOFFの時間を長い信号となっています。

情報0 / ̄ ̄ ̄ ̄\_____  
    |  (ON)  |  (OFF) |
    |←───→|←───→|
      1T    1T

情報1 / ̄ ̄ ̄ ̄\________________
    |  (ON)  |       (OFF)       |
    |←───→|←──────────────→|
      1T         3T

            変調単位T≒470us
            平均速度 ≒1/(1T+2T)≒700bps

パルス位置変調方式の符号化方法(一例)

 この例では情報によってOFF区間に3倍の違いがあります。情報0と1の発生確率が同じ場合は平均のOFF区間が2Tとなり、平均速度は約700bpsとなることが分かります。

 また、ON区間よりも後ろのOFF区間の長さに情報が付与されていることから、データーの最後にSTOPビットとよばれるON区間を含む情報が送信しなければ、最後の情報が欠落してしまうことが分かります。(家製協方式とNEC方式の場合)

 次に、生成符号に約38kHzの副搬送波を用いて振幅変調を行います。下図のようにPPM信号がONの時に搬送波を出力し、OFFの時に非出力する、つまり、「点滅」か「消灯」で信号を送ります。

搬送波 ||||||||||||||||||||||||||||||||||||||||||||||||||

PPM/ ̄ ̄ ̄ ̄\____/ ̄ ̄ ̄ ̄\_________

変調波 ||||||||||_____||||||||||__________

      /  \
     / 拡大 \
    /      \
   ┌┐┌┐┌┐
   ┘└┘└┘└───
     | |
    →| |← 約38kHz (約26μs)

パルス位置変調方式の変調方法(一例)

 下図は実際の信号波形をPICkit2のロジアナ機能で測定したものです。表示解像度の関係で26μsの搬送波は正しい分解能で見れていませんが、赤外線が点滅する様子を示しています。

赤外線リモコンの信号波形の例
実際の信号波形の例(PICkit2にて測定1000us/DIV)

 以上のようなパルス位置符号化と振幅変調の2つの処理を合わせて、PPMが実現されます。

赤外線振幅変調方式(二次変調)

 前述のパルス位置変調された変調波を、赤外線発光ダイオードに入力することで、約940nmの赤外線として送信されます。副搬送波の波長が約7900mなので変調周波数は約10桁くらいの違いがあります。

 変調は赤外線LEDで実施されるので、下図のような赤外線LEDに電流を流すための回路だけで実現できます。ベースの入力抵抗は、赤外LEDの発光時に大きな電流を流すために、小さめに設定しています。また、コレクタの出力抵抗RはLEDの順方向電圧VFと最大尖頭電流IFmax.から求めます。
 例として、入力抵抗に2.2kΩのベース抵抗を入れ、出力抵抗は、VF=1.5V、IF(max)=30mAの時、R=100Ωとなります。なお、赤外LEDに常時電流が流れてしまう心配があるようでしたら、IFは標準値を使用した方が良いでしょう。

                        ┯ Vcc=5V
                        |
                        ▼→ IR LED
                        ┯
                  ┌─∧∨∧─┘
                 /C
      2mA→       B┃/     Vcc−VF−0.6
    ○───●─∧∨∧──┨    R≧───────
        |  2.2k   ┃\       IFmax
   H:発光  <     2SC1815\|
   L:非発光 > 100k       ̄|E
        <        GND|
        |        ┯┿┯
       ┯┿┯
赤外線リモコン送信回路図(低出力)

 このような回路図だと赤外線LEDに大きな電流を流すことが出来ないので、リモコンの送信可能距離が短くなったり、リモコンを受信機の方向にしっかりと合わせないと信号が届かなくなります。
 そこで、下の回路図のようなコンデンサにLED発行用のエネルギーを貯めてから発光する方法が考えられます。赤外線LEDはパルス発光なのと、ボタンを押し続けてもコマンドの休止区間があります。したがって、連続して発光することが無いので発光の瞬間だけに大きな電流を流すことが出来ます。

             ┯ Vcc=5V
             |
             /E
          B┃|/ 
        ┌─┨  ̄ 2SA1015
        | ┃\ 
        <   \C
        > 1k   |  1.0
        <    ●─∧∨∧─┐
        |   +|     |
        | 100u ┷     ▼→ IR LED
        |    ┯     ┯   TLN110(F)
        |   ┯┿┯    /C
        |       B┃/  
    ○───●─∧∨∧───┨   
           100    ┃\  
   H:発光         2SC1815\|
   L:非発光            ̄|E
                  GND|
                  ┯┿┯

赤外線リモコン送信回路図(高出力)

 赤外線を発光する瞬間は2SAのトランジスタがOFFしてコンデンサへの供給が途絶えますが、2SCのトランジスタによってコンデンサから赤外線LEDに電流を流します。一定以上の点灯時間が継続するとコンデンサの電荷が無くなり、赤外線LEDは消灯されます。この回路図では、およそ400mAの電流を流すことが出来ますので、パルス点灯している瞬間の出力を上げることが出来ます。
 なお、入力がオープンになったとき、2SAのトランジスタから2SCのトランジスタのベースに電流が漏れてきてLEDがオンしてしまいます。2SCの入力ベース抵抗(100Ω)を1kΩ以上の高値に変更すると、2SCのベースへの漏れ電流は少なくなりますが、2SCの増幅度が不十分になるって発光出力が下がると思います。

赤外線リモコンフォーマット

 赤外線リモコン信号のフォーマットは、主に家電製品協会(AEHA)方式、NEC方式、ソニーSIRC方式の3種類があり、一例として、PanasonicやSHARPは家電製品協会に準じた上で独自の仕様を取り入れています。
 下表は、それぞれほ方式のデーターフォーマットです。項目の「SYNC」は初期の同期部を、「DATA0」はデータの値が0の時の信号を、「DATA1」は1の時の信号を、「STOP」はデーターの終了を表しています。また、表中の「ON」は赤外線の38kHzでの点滅状態を、「OFF」は非点滅状態を、括弧内は点滅もしくは非点滅の長さを変調単位時間Tを用いて表しています。

赤外線リモコンのデータフォーマット1
方式 SYNC DATA0 DATA1 STOP
家製協 ON(8T)+OFF(4T) ON(1T)+OFF(1T) ON(1T)+OFF(3T) ON(1T)
NEC ON(16T)+OFF(8T) ON(1T)+OFF(1T) ON(1T)+OFF(3T) ON(1T)
ソニー ON(4T)+OFF(1T) ON(1T)+OFF(1T) ON(2T)+OFF(1T) -

赤外線リモコン受信回路図

 赤外線受信モジュール(レシーバーモジュール)を使用することで副搬送波38kHzのASK復調後の信号を取り出すことが出来ます。多くの受信モジュールがCMOS出力となっているので、VOUT出力をGPIOなどに直接接続することで動作します。(VOUT出力にプルアップ抵抗やフィルタが必要なモジュールもあります。)

       ┯ Vcc=5V
レシーバー  |
モジュール  |       振幅復調信号出力(反転)
(例)┏━┓  |  ┌────────────○
※ ┃○┃  |10u |       L:点滅(受光)
  ┃ ┃  ●┐ |       H:非点滅(非受光)
  ┣┳┫VCC |┷ |
VOUT||└──┘┯ |
┌─┘●────┘ |        ┯ Vcc=5V
|  |      |        |
| ┯┿┯ GND   |        |
└─────∧∨∧─●        /E
論理反転   10k  | 100k  B┃|/
          └─∧∨∧─┨  ̄
                ┃\
※受信モジュールの     2SA1015 \  1k 確認用
 端子配列は製品に         C└∧∨∧┐※
 よって異なります              ▼→
※グレー部は受信確認用LED       LED ┯
                      ┯┿┯
赤外線リモコン受信回路図(標準)

 受信モジュールは38kHzの副搬送波で振幅変調された赤外線のみを検出することが理想ですが、受信モジュールの中にはノイズを多く検出してしまうものもあります。こういった場合、モジュール出力に負荷を与えることで、ノイズ耐性を改善できる場合があります。
 読取りソフトウェアは「(1).IR-TESTER 赤外線リモコン受信ソフトウェア」から、回路図は「赤外線リモコンテスター回路図」を参照してください。

 下図は、ノイズ耐性を改善するとともに、モジュールから出力される論理反転信号を正論理に戻す受信回路の一例です。トランジスタのベース抵抗を1kΩ〜10kΩの範囲で調整して、感度を調整します。但し、1kΩ未満にするとモジュールが破損してしまう恐れがあります。必ず、受信モジュールの最大出力電流を超えないように設定してください。

       ┯ Vcc=5V
レシーバー  |          振幅復調信号出力
モジュール  ●─────┐ ┌───────○
(例)┏━┓  |     < |  L:非点滅(非受光)
※ ┃○┃  ●┐  100k > |  H:点滅(受光)
  ┃ ┃  |┷    < |     Vcc ┯
  ┣┳┫VCC |┯    | |     =5V |※
VOUT||└──┘|10u   ●─●        ▼→
┌─┘●────┘   /C  |        ┯
| ┯┿┯ GND   B┃/   <100k  ┌∧∨∧┘確
└─────∧∨∧─┨    >    |C 1k  認
論理反転  1k以上 ┃\   <  B┃/     用
     (10k) 2SC1815\|  └──┨
             ̄|E    ┃\
※受信モジュールの   GND|  2SC1815 \| E
 端子配列は製品に   ┯┿┯      ̄|
 よって異なります           ┯┿┯

赤外線リモコン受信回路図(耐ノイズ・低感度)

 なお、上図の回路図では、待機電力が増大してしまいますので、乾電池などで常時待機するような場合は、工夫が必要です。しかし、ACアダプタで駆動する場合は、無負荷時のACアダプタの消費電力(一般に100〜300mW程度)の方が遥かに大きいので、削減に対する効果の割合が少ないと思います。

赤外線LEDを使ったリモコン受信回路図(近距離用)

 上記の赤外線リモコン受信回路図は、低感度といっても数mの距離から操作の出来る感度があります。一方、学習リモコンの学習用の受信回路は、非常に近距離で使用するので、さらに低感度であっても良いのです。
 そこで、赤外線LEDを使った受信回路の製作例を説明いたします。ご存知のとおり、赤外線LEDは電流を流すと赤外線を発光します。しかも、反対に赤外線などの光エネルギーを受けると発電し、電流を取り出すことも出来ます。

 ┯         ┯ Vcc=5V
 |受光       |      信号+副搬送波
→▼LED※       /C   ┌───────○
 ┯      ┃|/    |  L:非点灯(非受光)
 └─∧∨∧──┨  ̄    |  H:点灯(受光)
    10k   ┃\     |     Vcc ┯
      2SA1015 \    |     =5V |※
           ●───●        ▼→
           |   |        ┯
※汎用の赤外線    >   <100k  ┌∧∨∧┘確
 LEDを受光  10k<   >    |C 1k  認
 用に使用。     >   <  B┃/     用
           |   └──┨
          ┯┿┯     ┃\
※LEDの特性に        2SC1815 \| E
 よっては抵抗の調整が          ̄|
 必要な場合があります         ┯┿┯

赤外線LED受信回路図(近距離・学習リモコン用)

 しかし、微小な電流しか取り出せないのでインピーダンス変換のための増幅回路等が必要です。上の回路図の出力をH8マイコンのADCに入力すれば、赤外線信号をアナログ波形として取り込むことが出来ます。H8/3694Fの場合、約6us間隔で入力できるので、80kHz程度の信号までサンプリングすることが出来ますが、メモリ容量が小さいので、全てをメモリーに取り込むのは難しいと思います。開発中のソフトウェアは次節の「(2).IR-ADC 近距離LED受信用ソフトウェア」からダウンロードできます。

赤外線リモコンの解析ソフトウェア

 受信した信号は振幅変調は復調されていますがパルス位置符号化されているので、このままでは信号が読み出せません。各種のリモコン信号を復号するソースリスト等(あまり綺麗ではありません)を無償で公開していますので、御利用ください。
 受信部や送信部のソースリストは様々なマイコンで実行できると思いますが、その他のソフトウェアはRENESAS H8/300H Tiny シリーズの H8/3664FおよびH8/3694F用です。秋月のAKI-H8/3664BPや古いAKI-H8/3664Fのクロックにはセラミック振動子が採用されていますが、本ソフトウェアではクロックのずれを時計RTC用水晶クロックでキャリブレーション(補正)する機能を搭載し、精度を向上しています。

(1).IR-TESTER 赤外線リモコン受信ソフトウェア


IR-TESTER 赤外線リモコン受信ソフトウェア
ファイル 分類 説明 Ver. 更新
ir_read_simple.c ソース 受信部 1.06 09/09/06
ir_send_simple.c ソース 送信部 1.06 09/09/06
ir_tester3664F.zip ソフト H8/3664F,3664BP用 mot 1.06 09/09/06
ir_tester3694F.zip ソフト H8/3694F用 mot 1.06 09/09/06
ir_tester.txt 説明書 リファレンスマニュアル 1.06 09/09/06
man4hterm.txt 説明書 htermでの書き込み方法 --- ---
com_port.html 説明書 COMポートの変更方法 --- ---
ir_tester.zip 一括 全ソースおよびソフト 1.06 09/09/06

IR-TESTER Ver 1.06 (IR Receiver Module 版) by ボクにもわかる地上デジタル
SYS Cal. ->135 SysCK=15,980,478Hz(-1220ppm) ->Done
Milli.Sec. Cal. ->225->Done MSWAIT=564->501
MOD. Cal. -> 228 WAIT=5->4(4.39) EOF=4/5
ReMOD. Cal. -> 197 WAIT=4->4(4.7) EOF=5/4
ReMOD. Cal. -> 197 WAIT=4->4(4.7) EOF=5/4 TIMES=18->18

Ready
> r
   read
IR Sensing...done

IR Mode = AEHA
Data Length  = 48 bits
Symbol Counts= 195 samples
SYNC Duration= 5377 us (ON: 3525 us)/(OFF: 1852 us)
SYNC Counts  = 1217 samples (ON: 827 samples)/(OFF: 390 samples)
DATA Duration= 58 msec.
TOTAL Time   = 66 msec.
SYMBOL Rate  = 743 Baud (bps)
DATA Rate    = 819 Baud (bps)

Data[6]={0xAA,0x5A,0x8F,0x12,0x15,0xE1}; len=48;
ID=2 AQUOS VOL_DOWN

Ready
>
IR-TESTER 赤外線リモコン受信例 Ver.1.06

 このプログラムは、PCからハイパーターミナルやTeraTermを使用して制御します。通信設定は「19200 8-N-1」としてください。
「read」と入力すると赤外線検出が始まり、検出すると受信データ等が表示されます。「send」と入力すると受信した信号を送信します。

 なお、これらのソフトウェア(ソースリスト)によって、何らかの損害が発生した場合であっても、当方は責任を負いません。全て自己責任で御利用ください。

(2).IR-ADC 近距離LED受信用ソフトウェア

 前節のソフトウェアは赤外線受信モジュール(赤外線レシーバーモジュール)を使用したものでしたが、こちらはLEDを使った近距離受信用のソフトウェアです。
 受信信号をADコンバータでサンプリングしているので副搬送波の波長と周波数が測定できます。また、前作での不具合の経験を活かして開発したので、データ持続時間や、ボーレート測定の精度が大幅に向上しています。

IR-ADC 近距離LED受信用ソフトウェア
ファイル 説明 Ver. 更新
ir_adc_read.c LED受信用ソースリスト 0.27 09/09/06
ir_adc_read_3664F.zip 単体 H8/3664F&BP用 0.27 09/09/06
ir_adc_read_3694F.zip 単体 H8/3694用 0.27 09/09/06
ir_tester_adc_3664F.zip IR-TESTER H8/3664F&BP用 0.27 09/09/06
ir_tester_adc_3694F.zip IR-TESTER H8/3694用 0.27 09/09/06
man4hterm.txt htermでの書き込み方法 --- ---
com_port.html COMポートの変更方法 --- ---
上記ソフトウェアに関していかなる損害も補償しません。


IR-ADC Ver 0.27 (近距離LEDセンサ用) by ボクにもわかる地上デジタル
SYS Cal. ->135 SysCK=15,980,542Hz(-1216ppm) ->Done
Milli.Sec. Cal. Started ->225->Done MSWAIT=564->501
listening...(5sec.)
done

Wave Length  = 26.352[us]
Carrier freq = 37,946[Hz]
IR Mode = AEHA
Data Length  = 48 bits
SYNC Duration= 5361 us (ON: 3609 us)/(OFF: 1752 us)
DATA Duration= 63.033 msec.
TOTAL Time   = 68.394 msec.
SYMBOL Rate  = 746 Baud (bps)
DATA Rate    = 761 Baud (bps)

Data[6]={0xAA,0x5A,0x8F,0x12,0x15,0xE1}; len=48;
IR-ADC 赤外線リモコン受信例 Ver.0.27

 受信可能な距離は、正面方向で10cm以内が目安です。最大で30cm程度まで通信が可能ですが、少しでも横にずれると、大幅に通信距離が低下してしまいます。実は、もっと小さい信号でもAD変換器に取り込めているので、工夫をすれば、通信距離を伸ばすことが可能であると考えていて、現在、LEDの高感度化にも挑戦中です。その他、既知の不具合はソースコードに記載しています。

 なお、これらのソフトウェア(ソースリスト)によって、何らかの損害が発生した場合であっても、当方は責任を負いません。全て自己責任で御利用ください。

赤外線リモコンテスターの特長

 このRENESAS H8/300H Tiny用プログラム「赤外線リモコンテスター」の特長は以下のとおりです。
  • 赤外線リモコンの3方式の信号を読み取れる
    • AEHA方式:Panasonic、SHARPなど
    • NEC 方式:東芝など
    • SIRC方式:SONYなど
  • モードの自動判定
  • 信号内容の表示[display]
    • 16進数表示
    • 信号名表示
      (SHARP TV, Panasonic BDなどの一部の機器のみ)
  • 読み取った信号の送信機能[send]
  • 読み取った信号の登録機能[put/get](学習リモコン機能)
  • 送信時に以下のカスタマイズが可能
    • モ ー ド[mode]:他のモードに変更して送信可能
    • 搬 送 波[freq]:10〜80kHzまで変更可能
      (周波数偏差による機器の耐性能を測定することが可能)
    • デューティ[tau]:搬送波のデューティーを変更可能
      (デューティーに対する耐性能を測定することが可能)
    • 変調速度[width]:シンボル長の基本単位を変更可能
      (信号の偏差による機器の耐性能を測定することが可能)
  • 2種類の送受信モジュールを搭載[read simple/send simple]
    • タイマー使用した高精度な送受信モジュール
    • タイマー不使用のシンプルな送受信モジュール
      (他のアプリケーションへの応用実験用)
  • コード(16進数)の手動入力[input]
  • PCなしで動作する単独テスターモード[quit]
    • 信号読り
    • LCDキャラクタディスプレイ表示機能(HD44780)
    • 信号送信(学習信号)
    • 赤外線リモコン(12キーと4色ボタン)で制御可能
  • 自己キャリブレーション機能(送信信号の精度向上)[cal]
    • 自動キャリブレーション
    • マニュアル補正
 なお、特長機能を含め全ての機能が正しく動作している保証はありませんので、自己責任での利用を御願いいたします。

赤外線リモコンテスター回路図

 前節のソフトが動作する赤外線リモコンテスターを製作します。準備するものは以下のとおりです。
  1. AKI-H8/3664BP 又は AKI-H8/3664F 又は AKI-H8/3694F
  2. H8タイニーI/Oボード (H8 Tiny I/O BOAD TERA2)
  3. トグルスイッチ(SW1)、スライドSW(POWER SW)、電池(006P)
  4. C言語開発環境 GCC Developer Lite (フリーソフト)
  5. 赤外線テスター回路図に記載の電子部品、基板など
 AKI-H8シリーズは秋月電子通商で販売されているRENESAS H8/300H Tiny マイコンキットです。3664BPであればRS-232Cコネクタが搭載できるので、H8 Tiny I/O BOAD TERA2なしでシリアル接続ができます。価格も1650円ですので、お買い得です。
 3664Fと3694Fはモジュール単品で売られていて、それぞれ1600円、1650円です。RS-232Cコネクタが搭載されていないので、H8 Tiny I/O BOAD TERA2(別売700円)を使ってシリアル接続します。
 H8 Tiny I/O BOAD TERA2は、RS-232Cコネクタ以外にも、2つのLED(赤、緑)と、トグルスイッチが接続できるようになっています。しかし、H8 Tiny I/O BOAD TERA2に搭載するトグルSWはキットに含まれていないので、別途、購入する必要があります。したがって、最も安価に済ませる方法は、AKI-H8/3664BPにLEDとスイッチを別途、自分で追加することです。
AKI-H8/3664BP
AKI-H8/3664BPに自作基板(下部)などを追加した例

 次にC言語の開発環境を準備しますが、開発環境はソフトウェアを修正する場合にのみ必要です。ソフトウェアをAKI-H8に転送するだけであれば、AKI-H8/3664BPに付属のRENESAS(元HITACHI) HTERMおよび「書き込み制御プログラム(3664.MOT)」を使って転送することができます。ただし、付属のソフトはWindows 95/98/ME用ソフトウェアですので、Windows XP以降を使用されている方は、最新のHTERMをRENESASからダウンロードします。詳しくは、「htermでの書き込み方法」を参照してください。
 ここでは、無料の開発環境である株式会社ベストテクノロジーのGCC Developer Liteを使用します。ダウンロードのページは見つけにくいのですが、該社ホームページの「ナレッジベース」より、技術情報/ソフトウェア/GCC Developer Liteからダウンロードできます。この開発環境に含まれるH8マイコン用のライブラリを使用していますので、他の開発環境で使用する場合はソースコードの見直しが必要です。
 赤外線テスター回路図は下図に示すとおりです。回路図にはAKI-H8やH8 Tiny I/O BOAD TERA2に搭載されている部品の多くが省略されていますので、御注意ください。少なくとも、本図に掲載されている部品を追加で用意すれば、必要な部品が揃います。

AKI-H8/3664BP(SDIP) 16MHz                 ┯ Vcc=5V
AKI-H8/3664F (QFP) 16MHz                |
AKI-H8/3694F (QFP) 20MHz            +┌──●
                         ━┷━ |
CN2(26pin)                    ━┯━ ▼→ 赤外LED
━━━┓                  100u ┯┿┯ ┯ 東芝
   ┃                         | TLN110(F)
   ┃                ┌──●─∧∨∧─┘ 100mA〜1A
   ┃               /C  | 33(1/4W)    max.
   ┃P76/TMOV         B┃/    |
  7┠──────●─∧∨∧──┨     |     ┯ Vcc=5V
   ┃ H:発光  |  2.2k   ┃\    |     |
   ┃ L:非発光 <     2SC1815\|   |     ▼→ 青
   ┃      > 100k       ̄|E |     ┯ LED3
   ┃      <        GND|  ●─∧∨∧─┘
   ┃      |        ┯┿┯ |  1k
   ┃     ┯┿┯           |
   ┃                ┌──┘
   ┃               /C
   ┃P14/IOQ0         B┃/ 
  20┠──────●─∧∨∧──┨  
   ┃ H:発光  |  2.2k   ┃\ 
   ┃ L:非発光 <     2SC1815\|
   ┃      > 100k       ̄|E
   ┃      <        GND|
   ┃      |        ┯┿┯
   ┃     ┯┿┯            
   ┃                        Vcc=5V
   ┃      ┯Vcc=5V              ┯
   ┃      |                  |青
   ┃      <                  ▼→
   ┃      >10k                 ┯
   ┃      <       ┌─────∧∨∧──┘ LED4
   ┃      |     B┃/       1k
   ┃P83/    ●─∧∨∧─┨ 2SC1815
   ┃FTIOC  10k | 100k  ┃\            Vcc=5V
  12┠──∧∨∧─●       \| E             ┯
   ┃P15/IOQ1  |        ̄|    PL-IRM0208    |
  21┠──∧∨∧─●──┐    ┯┿┯    -A538┏━┓  |
   ┃ H:受光 10k   C\        1k    ┃○┃← |
   ┃ L:非受光      \┃B    ○─∧∨∧─┐┃ ┃受光|
   ┃        2SC1815 ┠──○──     |┣┳┫  |
   ┃Vss(GND)       /┃  SW2 ○─∧∨∧─●|||VCC |
1,2,26┠──┐      |/        10k   └┘|└──●
   ┃  |     E| ̄            VOUT | GND ┷
   ┃ ┯┿┯    ┯┿┯             ┯┿┯ 10u┯
   ┃                            ┯┿┯
   ┃             ┌─∧∨∧──────┐LED1
   ┃              |  1k       ▼→ 赤
   ┃              |          ┯
   ┃P80/FTCI         |          |
  9┠─────────────┘         ┯┿┯
   ┃P81/FTIOA            1k
  10┠───────────────∧∨∧──────┐LED2
   ┃P82/FTIOB              10k  ┯ 5V ▼→ 緑
  11┠─────┐         ○─∧∨∧─┘  ┯
   ┃     └───────○──  10k     |
━━━┛             SW1 ○─∧∨∧────●
                           ┯┿┯
                              
CN1    ┯Vcc=9V                   ┯ Vcc=5V
(26pin)  |※AKI-H8/3664BP ┯ Vcc=5V      ┌──●
━━━┓ | (SDIP)のみ必要 |          ┷  |
   ┃ |※その他(QFP)は、 \         0.1┯  ▼← 赤外LED
(BP= ┠─┘ I/O BOAD TERAが  \|┃      ┯┿┯ ┯ 受光用
25,26)┃   電源を供給する   ̄ ┠─∧∨∧──────┘
   ┃             /┃  10k
   ┃            / 2SA1015        ┯ Vcc=5V
   ┃PB0/AN0        |             |
  10┠───────────●────┐        ▼→ 青
(BP=6)┃※AKI-H8/3664BP    |    |        ┯
   ┃ (SDIP)は6番pin   >    <100k  ┌∧∨∧┘LED5
   ┃※その他(QFP)は、 10k <    >    |C 100
   ┃ 10番pinに入力    >    <  B┃/
   ┃           |    └──┨
   ┃Vss(GND)      ┯┿┯      ┃\
  1,2┠──┐              2SC1815 \| E
━━━┛  |                   ̄|
     ┯┿┯                 ┯┿┯

H8 Tiny I/O BOAD TERA2を使う場合は下記が不要
             (ボードに搭載されているので)
 CN2 名称   機能
  9  P80/FTCI LED1(赤)
 10  P81/FTIOA LED2(緑)
 11  P82/FTIOB SW1トグルスイッチ(別売)

赤外線テスターの回路図

 LEDとスイッチの機能は以下のとおりです。LED1とLED2、SW1は H8 Tiny I/O BOAD TERA2のボード上に搭載されている部品です。AKI-H8/3664F(QFP)やAKI-H8/3694F(QFP)を使用する場合は H8 Tiny I/O BOAD TERA2上に部品を載せます。AKI-H8/3664BP(SDIP)を使用する場合は製作する基板側で組みます。

LEDとスイッチの機能
デバイス 内容
LED1(赤) 起動時と送信時に点灯する
LED2(緑) 受信待ち状態の時に点灯する
LED3(青) 送信データで点滅する
LED4(青) IRユニット受信時に点滅する
LED5(青) LED受信時に点滅する
SW1 シリアル接続=L/単独=H
SW2 高感度受信=10k/耐ノイズ=1k

 キャラクタ液晶を接続する場合は以下のようにします。接続はCN1の14〜19ピンと電源、GNDです。CN1の13〜26の14ピンを14ピンヘッダで取り出し、キャラクタ液晶に接続すると良いでしょう。

AKI-H8      液晶モジュール
(CN1)       (HD44780搭載)
━━┓      ┏━━━━━┓    ┯ 5V
  ┃P50     ┃     ┃    |
 14┠──────┨DB4  Vdd┠───●┘
  ┃P51     ┃     ┃   |
 15┠──────┨DB5    ┃   <
  ┃P52     ┃     ┃ ┌→>
 16┠──────┨DB6  VLC┠─┘ < 10k
  ┃P53     ┃     ┃   |
 17┠──────┨DB7 DB0-3┠─┐ |
  ┃P54     ┃     ┃ | |
 18┠──────┨E   R/W┠─● |
  ┃P55     ┃     ┃ | |
 19┠──────┨RS   Vss┠─●─●┐
  ┃      ┗━━━━━┛   ┯┿┯
キャラクタ液晶の接続図(電源とGNDは省略)

 CN1の接続は電源とPB0/AN0のみなので、AKI-H8/3664BPを改造してCN2のみで接続すれば、コネクタ一つで接続できます。

Arduino版 赤外線リモコンテスター

 上記のソフトよりも解析機能は少ないですが、Arduino版の赤外線リモコンコードのみを解析ソフトウェアを「ir_tester.zip」からダウンロードすることが出来ます。

Arduino版 赤外線リモコンテスター
Arduino版 赤外線リモコンテスター実行画面

 Arduino のアナログ1番ピンに赤外線リモコン受光モジュールを接続するだけで動作します。家電製品協会フォーマット(AEHA)のリモコン信号を受光すると結果をシリアル(9600bps)に出力します。
 Arduino のアナログ5番ピンにプッシュボタンを接続するとNECフォーマットやSONY SIRCフォーマットのコードを解析することも出来ます。上記の例では上から順にAEHA形式、NEC形式、SIRC形式の信号を受信しています。
 さらに、Digital 13番ピンに赤外線LEDを接続すると受光したリモコンコードを送信することも可能です。ただし、リモコン送信が可能なのはバイト単位(8ビット単位)の信号のみです。例えば、上例のSIRCのリモコンコード長は20ビットとなっておりバイト単位ではありませんので正しく送信することが出来ません。
 製作方法などの詳細は「Arduino用 赤外線リモコンコード解析ツール」を参照してください。

無線リモート赤外線リモコン

 別ページに、赤外線リモコンの送受信機能をもったXBee子機(Arduinoベース)を親機となるパソコン(Cygwin)から制御する「無線リモート赤外線リモコン」の製作方法を紹介しています。赤外線リモコン操作の履歴を収集するロガーにも対応することが出来ます。詳しくは「リモート赤外線リモコン」を参照してください。

BUFFALO製 Remote Station PC-OP-RS1

御注意
 Remote Station PC-OP-RS1およびKURO-RSの改造による事故や損害に対して、当方は一切の責任を負いません。

パソコン用学習リモコン
BUFFALO Remote Station PC-OP-RS1
(左側に装着している赤外線LEDは付属していません)

 赤外線リモコンの信号をサンプリングしたり送信したりすることができる市販品もあります。
 BUFFALO製 Remote Station PC-OP-RS1(定価5,300円→時価)は、PICマイコン(PIC16F688)でリモコン信号をサンプリングし、そのサンプリング信号をパソコンから送信することが出来る商品です。読み取った信号データーは時系列のサンプリング信号(240バイト)なので、赤外線リモコンの方式を問わない利点があります。しかし、リモコン信号のコードを解析する機能がなく、サンプリングした信号は本機でしか使用できません。
 また、バッファロー製PC-OP-RS1と同じハードウェアの製品KURO-RSも同社から玄人志向ブランドとして市販されています。こちらもリモコン信号のコードは解析できませんが、学習リモコンのソフトウェアを開発するためのLinux用とWindows用のSDKや、赤外線コントロール仕様書が付属しています。なお、BUFFALO製PC-OP-RS1に付属するソフトウェア「Remote Station」は玄人志向KURO-RSにも対応しているので、バッファロー社のサイトからPC-OP-RS1アップデータをダウンロードすれば動作させることが出来ます。
 Remote StationソフトウェアはPC-OP-RS1アップデータ Ver.1.11β4(2007年9月)に含まれています。本バージョンでは PC-OP-RS1のCD-ROMなしにインストールが可能です。ハードウェアは、Remote Station PC-OP-RS1、KURO-RSだけでなく、ハードウェアを自作した場合であっても動作しますが、将来的に変更される可能性があるかもしれません。

赤外線リモコンの基板の例
パソコン用学習リモコン Remote Station の基板

 上の写真(バッファロー製PC-OP-RS1)の下半分の中央付近のICがPICマイコンです。その直ぐ下に5ピンの端子CN5があります。この1番ピンから4番ピンをPICkit2の2番ピンから5番ピンに接続し、あとはMCLR_をうまく処理すればPICマイコンへの書き込みが可能になります。MCLR_の改造に関するヒントは、CN5の5番ピンと左下隅にあるJP1を活用することです。JP1を使用する場合はR29を外しておく必要があります。下図は改造後の基板です。メーカーの想定外の改造につき、部品を追加した部分(1)〜(3)にはモザイクを入れています。

赤外線リモコンの基板の例
パソコン用学習リモコン Remote Station の基板(改造後)

 バッファローPC-OP-RS1に搭載されている赤外線レシーバーモジュールは、PICマイコンPIC16F688の7番ピン(RC3)に接続されています。また、赤外線トランシーバー4系統は、それぞれ11番ピン(RA2)、8番ピン(RC2)、12番ピン(RA1)、13番ピン(RA0)に接続されています。送信時に点灯する可視LEDは9番ピン(RC1)です。
 USBはパソコンではシリアルCOMポートとして認識されており、通信設定は「115200 8-N-1」で通信が可能です。PIC16F688のUARTの5番ピン(RX)、6番ピン(TX)が写真の上方中央部のUSBシリアル変換ICに接続されています。

パソコン用学習リモコンで使用するPIC16F688の端子
ピン
番号
名称 接続先
ピン
番号
名称 接続先
1 VDD +5V(USB)
14 VSS GND(USB)
2 OSC1 水晶(20MHz)
13 RA0 IR_LED(B黄)/UCSP_DATA
3 OSC2
12 RA1 IR_LED(B黒)/UCSP_CLK
4 _MCLR UCSP_MCLR
11 RA2 IR_LED(A黄)
5 RX UART_TX(USB-232C)
10 RC0 -
6 TX UART_RX(USB-232C)
9 RC1 赤LED
7 RC3 赤外線レシーバ
8 RC2 IR_LED(A黒)

 通信で使用するシリアル信号コマンドは、アスキーコード1文字で一つのコマンドになっています。使用するコマンドは、サンプリング実行の"r"コマンド、サンプリング中止の"c"コマンド、データ送信の"t"コマンド、LEDの強制発光の"i"コマンドです。詳しい使い方は、玄人志向KURO-RSに付属の「赤外線コントロール仕様書」を参照するか、Remote Stationソフトウェアを使って実際に制御を行っている時にシリアル信号を解析すれば簡単に知ることが出来ます。なお、基板には実装されていませんが、LED3とLED2、そして負荷抵抗を実装することでシリアル通信時にLEDが点灯します。
 赤外線リモコン信号のサンプリングデータは0.1ms毎の2値の復調後の符号です。赤外線の搬送波と38kHzの副搬送波によるASKは復調されていますが、PPKは復調されておらずにサンプリングされています。PPKは約0.4〜0.5msの基本単位で変調されているので、サンプリングデータ4〜5個が一つの基本単位に、約8〜10個で符号「0」を、約16〜20個で符号「1」を表しています。データはLSBファーストにて16進数に変換されて240バイトのバイナリデータとして保存されます。

 Remote Station PC-OP-RS1とKURO-RSに対応し、また互換基板にも対応した互換ファームウェアは「ir-gokan.zip(フリーβ版)」をダウンロードし、ZIP圧縮を展開してPICkit2を用いてRemote Station本体内のPIC16F688に転送します。PICkit2に付属の書き込みソフトウェア「PICkit2 PROGRAMMER」を起動し、メニューバーにある「File」メニューの「Import Hex」を選択して、ダウンロードして解凍したHEXファイルを読み込ます。そして、PICkit2をモジュールのピンヘッダに差し込み、PICkit2 PROGRAMMERのウィンドウ内の「Write」ボタンを押す(または「Programmer」メニューの「Write Device」を選択する)とPIC16F688にソフトウェアを書き込むことが出来ます。
 β版の制約事項:Remote Stationで取得したデータを稀に送信できない問題や、SIRC方式のコード取得時に誤る問題などが判明しています。疑わしい部分に対策を講じようとするとリソース不足でコンパイルが通りません。
 互換ファームウェアをRemote Station PC-OP-RS1やKURO-RSに転送してしまうと、元のファームウェアに上書きしてしまうので、元のファームウェアに戻すことは出来ませんので、御注意ください。
 PC-OP-RS1の価格は5,300円ですが、既に生産が終了しており、価格については「¥時価」となっています。(最新の価格は価格の前につけられた「¥」マークをクリックして確認してください)

PC-OP-RS1、KURO-RS、互換基板向けソフトウェア
内容 特長
Remote Station対応
解析ファームウェア

フリーβ2009-08-16
・PC-OP-RS1,KURO-RS用 互換ファームウェア
・Remote Stationを使った学習と送信が可能
・AEHA/NEC/SIRC方式のコード取得も可能
 (取得したコードの送信はできません)
赤外線リモコン信号
解析ファームウェア

フリーβ2012-06-03
・AEHA/NEC/SIRC方式のコード取得が可能に
・各方式のリモコンコードでの送信も可能
 (Remote Station用データの送信には対応していません)
・互換基板の自作が可能な回路図が付属
Remote Station対応
互換ファームウェア

フリーβ2010-02-12
・PC-OP-RS1,KURO-RS用 互換ファームウェア
・Remote Stationを使った学習と送信が可能
・互換基板の自作が可能な回路図が付属
※上記ソフトウェアに関していかなる損害も補償しません。

Remote Station対応「解析ファームウェア」フリーβ版の使用方法

 バッファロー製Remote Station PC-OP-RS1、玄人志向製KURO-RS、これらの互換ハードウェアのいずれかに本ファームウェアを転送すると、赤外線リモコン信号コードが解析できるようになります。また、本ファームウェアはRemote Station本体およびRemote Stationソフトウェアに対応しているので、Remote Stationでのリモコン信号の学習や送信も可能です。

「解析ファームウェア」対応ハードウェア
対応ハードウェア 注意点
BUFFALO PC-OP-RS1 ・PICkit2で転送するための改造が必要です。
・ファームウェアは元に戻せません。
玄人志向 KURO-RS ・PICkit2で転送するための改造が必要です。
・ファームウェアは元に戻せません。
互換ハードウェア
・PIC内蔵のクロックでは動作しません
・FTDI社FT232RLまたはFT232BLが必要です。
 (EEPROMは初期状態で動作します。)
全ハードウェア共通
・学習や送信ができない場合があります。
・互換性の問題で動作しない場合があります。

互換ハードウェア回路図
Remote Station PC-OP-RS1互換ハードウェア回路図(拡大)

互換ハードウェア製作例
Remote Station PC-OP-RS1互換ハードウェア製作例(拡大)
(左側6ピン端子はPICライター用、下部中央はシリアル用)

互換ハードウェア使用例
Remote Station PC-OP-RS1互換ハードウェア使用例
(FTDI製 USBシリアル変換ICFT232RLが必要)


 ファームウェアの転送には、PICkit2などのPICライターが必要です。ファームウェアの転送方法については、PIC16F688の仕様書やPICライターの説明書などで確認してください。
 互換ハードウェアを自作する場合は水晶(20MHz)が必要です。また、回路図のシリアル端子にパソコンのRS-232CやUSBシリアル変換ケーブルで接続した場合は、Remote Stationソフトウェアが動作しない場合があります。FTDI社FT232R(FT232RL)またはFT232B(FT232BM,FT232BL)のUSBシリアル変換チップを使って接続するか、これらのチップを搭載したUSBシリアル変換機器やUSBシリアル変換ケーブルを使用します。なお、EEPROMの内容については、BUFFALOのRemote Stationと同一状態で無くとも認識するようですが、場合によっては、EEPROMを初期状態に戻したり(FT232R)、外付けEEPROMを取り外したり(FT232B)しなければならないかもしれません。詳しくは互換ハードウェアの仕様書(非公開)を参照してください。

 ファームウェアの転送が完了したハードウェア(PC-OP-RS1など)の準備が出来れば、パソコンにRemote Station(など)の本体を接続し、Remote Station用ドライバやRemote Stationソフトウェアのインストールを行います。ドライバはFTDI製ですが、バージョンをそろえるためにRemote Station付属のものを使用した方が無難です。Remote StationではないFTDI製デバイスであってもRemote StationでインストールしたFTDIチップ用ドライバを使ってインストールすることが出来ます。
 ドライバのインストール後に、インストールされたCOM番号を確認します。COM番号の確認は、デバイスマネージャの「ポート(COMとLPT)」で、Remote Station(などの)本体がどのCOM番号に接続されているかを確認します。そして、ハイパーターミナル等の通信端末を起動します。プロパティの「接続方法」で、先ほど確認したCOMポートを選択し、「モデムの構成」を下表にしたがって設定します。

パソコン用学習リモコンの通信設定
項目 設定値
ビット/秒 115200
データビット 8
パリティ なし
ストップビット 1
フロー制御 なし

 通信の接続はハイパーターミナルの2つの電話器アイコンで行います。左側が「接続」で右側が「切断」です。Remote Stationが起動した状態ではRemote Station互換モードになっていますので、キーボードから大文字の「R」を入力します。すると、赤色のLEDが点灯状態になり、また、ハイパーターミナルには「waiting...」と表示され、赤外線リモコンの入力待ちになります。この状態で、通常のリモコンを近づけて信号ボタンを押下すると、ハイパーターミナルにリモコン信号のコードが表示されます。
 Remote Stationソフトウェアを使用する場合は、リモコン信号の待ち受け状態を解除する必要があります。入力待ちの状態で小文字の「c」を入力すると赤色のLEDが消灯し、Remote Station互換モードに戻ります。

 下表は拡張分を含むコマンド表です。「拡張」と書かれた拡張コマンドは当サイト独自の機能です。

Remote Station対応 解析コマンド一覧表
コマンド 種別 動作内容
r 純正 波形サンプリング実行
R 拡張 リモコンコード読み取り&解析
t 純正 波形サンプルデータの転送
c 純正 サンプリング中止
S 拡張 リモコンコード送信
i 純正 動作確認用LED点灯
I 拡張 バージョン表示

 なお、Remote Station互換モードは独自に開発したものですので、本来のRemote Stationの動作と全く同じタイミングで動作しているわけではありません。したがって、場合によってはリモコンの学習が正しく出来なかったり、あるいは本来のRemote Stationでは学習できないのに学習できてしまうこともあるかもしれません。学習後のデータについても互換性がありますが、場合によっては動作しない場合があるかもしれません。

御注意
 当サイトの内容や情報の利用によって事故や損失が発生したとしても、当方は、一切の責任を負いません。
 PC-OP-RS1およびKURO-RSを分解したりソフトウェアを変更すると、メーカーの保証が受けられなくなる上、万が一、本改造によって大きな損失が生じた場合であっても、一切の責任を負いません。十分に注意してください。
 また、Remote Stationはバッファローの製品に付属するソフトウェアです。Remote Stationのご利用については、使用許諾にしたがって下さい。


赤外線リモコン送信器

赤外線リモコンの基板の例
リモコン送信器の基板(例:ALPS製AQUOS用リモコン)

 以上は赤外線リモコンの解析や実験を行うための製作例を紹介してきましたが、ここからは実用的な赤外線リモコンの送信機の製作例を紹介いたします。なお、上の写真は既製のリモコンですので、リモコンコードが変更できません。製作例では、本来の赤外線リモコンで使用しているICとは異なり、Microchip社のPIC12F683を使用します。
 PIC12F683は、8ピンの小型で低消費電力なPICマイコンです。価格も1個150円と非常に安価なのが特長です。ただし、書き込みにはPickit2と呼ばれるPICライターが必要で、3500円ほどします。また、日本語のマニュアルが付属していないので、英語の苦手な方にとっては、少し、敷居が高くなります。したがって、1台しか製作しないのでしたら、H8の方が手軽だと思います。

 下図は、PIC12F683を使った3ボタンの赤外線リモコン送信器の回路図です。非常にシンプルな回路でリモコンの送信が可能です。

          PIC12F683
   UP     ┏━━━━━┓  POWER  ┌──┐
   ━┷━   ┃     ┃  ━┷━ |  |
 ┌─○ ○┐ ─┨T1CK1 IO3┠──○ ○─┘ ┯┿┯
 |    |  ┃     ┃   
 | DOWN └──┨IO1  IO4┠───∧∨∧─────┐
 | ━┷━   ┃     ┃   100       |
 ●─○ ○───┨IO0  IO5┠──∧∨∧─┐    ▼→ 赤外
 |       ┃     ┃  1k   |    ┯  LED
┯┿┯   ┌──┨Vss  Vdd┠─┐ ┯ 5V ▼→ 青  |
      |  ┃    ○┃ | |  ┯  LED |
      ●┐ ┗━━━━━┛ ●─┘  |   ┯┿┯
      |└───┨┠────┘   ┯┿┯
     ┯┿┯     10u
PIC12F683を使った赤外線リモコン送信器

 ソースコードとソフトウェアは下記からダウンロードできます。開発環境は HI-TECH Software PICC PRO 9.60 Lite版を使用しています。PICでのソフトウェア開発方法については「C言語ではじめるPICマイコン」()を参照すると良いでしょう。ソフトウェアの初心者や組込みソフトウェアの初心者の初心者にも理解しやすいバイブルのような書籍です。

赤外線リモコン送信器ソフトウェア
ファイル 説明 Ver. 更新
ir_send.c リモコン送信器ソースリスト 1.00 09/11/04
ir_send.zip リモコン送信器HEXファイル 1.00 09/11/04
上記ソフトウェアに関していかなる損害も補償しません。
[参考文献]
・C言語ではじめるPICマイコン()
C言語によるPICプログラミング
全て無料のPIC最強開発環境

 3つしかボタンの無いリモコンですが、例えば、パソコンの電源を入れたときにUSBの電圧を検出して、オーディオの電源を入り切りしたり、反対に電源を切るときにエアコンの電源をオフするなどといった簡単な自動制御を行うのに便利だと思います。また、防犯センサー等の送信器としても手軽に製作できます。なお、高出力が必要な場合は「赤外線リモコン送信回路図(高出力)」の回路図を参照してください。

 また、この8ピンのPIC12F683を使用した場合でボタン数を4つ以上に増やすには、入力ポートが足りません。もしもGPIOが8ポートあって16キーにする場合は、GPIOの出力4ポートと入力4ポートを、それぞれのキーの縦横に接続して、どのキーが押下されたのかを検出します。
 しかし、ポートが少ない場合は、ADCなどを利用してアナログ値で入力する必要があります。一例として、下図の16キーのリモコンでは、アナログ出力のキーパッド使って、PICのADCによるアナログ入力を利用してボタンの数を増やしています。

アナログ出力キーパッド
アナログ出力16キーを使った赤外線リモコン

アナログ出力16キー検出ソフトウェア
ファイル 説明 Ver. 更新
ir_send_adc_key.c 16キー検出ソースリスト 1.01 10/02/14
scif.c シリアル送信ソースリスト 1.00 09/10/10
ir_send_adc_keys.zip 16キー検出HEXファイル 1.01 10/02/14
上記ソフトウェアに関していかなる損害も補償しません。
[参考文献]
・C言語ではじめるPICマイコン()

 このキーパッドは16個のそれぞれのボタンに応じて抵抗値を変更しています。垂直方向のキー間には6.8kΩの抵抗を入れ、水平方向のキー間には27kΩの抵抗を入れています。6.8kΩを4倍すると27kΩになるところがポイントです。キー順に0Ω,6.8kΩ,13.6kΩ,20.4kΩ,27kΩ,33.8kΩ...101kΩと変化します。抵抗の変化は右上にあるオペアンプによって電圧に変換して出力しています。オペアンプは2chのものですが、現在は1chしか使用していないので、もう1chをコンパレータとして使用すればキー押下時に割り込みをかけることも可能です。
 この赤外線リモコンは、どちらかというと「8ピンのPICで多キー化を行うこと」と「他のマイコンなどに対して1ポートのADCだけでテンキー入力デバイスが接続できること」に重点を置いています。実験用に少ない配線でテンキーを接続したかったことが開発のきっかけとなりました。おまけの機能としてシリアル通信で押されたキーを送信する機能を付与しています。シリアル通信の設定は「9600 8-N-1」です。
 本ソースコードは上記のとおり公開していますが、回路図の公開については、実用的に使う人はあまり居ないと思うのと、清書するのに手間がかかりそうなので控えておきます。(要望が多ければ公開を検討します。)
 なお、分かる人には解るかと思いますが、ボタンの色は無意味ではなく、テンキー部は、茶、赤、橙、黄、緑、青と馴染みの順序になっています。紫と灰の色が無かったので代用している部分と、最下部は地デジで見慣れたキーになっています。

追加情報(2009/01/08)

 赤外線解析リモコンなどのプリント基板が付属したPICを使った電子工作の書籍「プリント基板で作るPIC応用装置()」がラトルズ社より出版されました。赤外線解析リモコンの他にも、温湿度計、数値表示装置、シリアル接続基板、USB接続基板、FT232RL基板、テレビ表示装置、情報収集装置の回路がプリントされていて、分割することで8種類の基板に、組み合わせることで24種類の応用装置が簡単に製作できます。赤外線解析リモコンには当サイトで使用しているPICと同じ型番のPIC12F683が使用されているので、当サイトの情報と合わせて参照していただくと、より一層の理解が深まります。

ラトルズ社PIC応用装置の赤外線解析リモコン
ラトルズ社PIC応用装置の赤外線解析リモコン

 上図の左側が赤外線解析リモコンの基板で右側は電源レギュレータとRS-232Cレベルコンバータのシリアル接続基板です。リモコンのボタンを押しながら電源を入れると学習モードになって、受信した赤外線リモコンのコマンドを学習するとともに、シリアルでデータを出力します。
 ただし、出力されるデータは通常のリモコンコードではなく、MSBファーストの信号になっていますので、実際に取得したコードを読むにはコード変換が必要になります。
 PICで学習リモコンを行っているのは、BUFFALO製のPC-OP-RS1にも似ていますが、ソフトウェアのソースコードが公開されている点が大きな相違点かと思います。

 以下に当サイトに掲載している実験機器との比較表を示します。当サイトの赤外線リモコン解析器は部品代で数倍の差がありますが、その分だけ多機能です。主にリモコン信号のコード取得を目的にするのであれば、ラトルズの赤外線解析リモコンが最良だと思います。

赤外線リモコン信号解析装置の比較表
機能\機器 当サイト掲載 ラトルズ
IR-TESTER IR-ADC 送信器 IR-REMOCON
マイコン H8/3664F H8/3694F PIC12F683 PIC12F683
部品代 約2,300円 約3,000円 約300円 約1,000円
送信機能 ○(12信号) ○(12信号) ○(3信号) ○(1信号)
学習機能 ○(12信号) ○(12信号) ○(1信号)
コード解析
リーダ解析
レート解析
搬送波解析
波形調整
16進入力

 ラトルズの「プリント基板で作るPIC応用装置」に関する情報は下記も参照してください。

プリント基板で作るPIC応用装置
書籍+基板 基板のみ


以下は2007年4月15日以降、更新をしていない古い情報です。

赤外線リモコン、ヘッドホンが動作しにくくなる

 大型テレビでは、赤外線を利用したリモコンやヘッドホンが動作しなくなる場合があります。あるいは、リモコンの電池が早く無くなったと感じる場合もあります。この問題はプラズマテレビで発生しやすい問題でしたが最近(2005〜2006年ごろから)は液晶テレビでも発生するようになりました。

 プラズマテレビでリモコンが効かなくなる原理は、プラズマテレビの原理に起因します。プラズマテレビは一つ一つの画素をプラズマ放電し、その画素中の蛍光体を発光させることで画像を表示しており、その際に可視光以外の赤外線なども発光してしまうのです。さらに、画素の輝度を高速な点滅によって制御しているので赤外線リモコンの38kHzと一致してしまう場合があります。このため、プラズマパネルの前に赤外線除去フィルタなどを貼り付けて対策を行っています。

 液晶テレビでリモコンが効かなくなる原理もまた液晶テレビのバックライトでのプラズマ放電が原因です。もともと、液晶テレビのバックライトは、プラズマテレビの画素に比べて極めて大きな部品でしたので、プラズマテレビに比べて可視光の発光効率が高く、赤外線の漏れも少ない特徴がありました。しかし、2005年以降、さらなる高輝度化や発光スペクトルの拡大、薄型化などの技術を投入してゆくことで、バックライトへの負担がかかり、赤外線の漏れが問題視されるようになりました。

リモコンが効かなくなった場合の対策(1)使用環境

 このような問題が発生した場合は、テレビからの光がリモコン受光部に入らないように工夫します。テレビ台の中のレコーダーなどへは、テレビの前に置かれた明るい色のソファーやジュータンが原因になる場合もあります。
 もっとも簡単な対策は、輝度(明るさ)を変化させることで、発生周期を変えて対応することです。
 テレビの輝度(明るさ)設定は、明るい方が妨害を受けやすそうに感じられますが、やや暗い時の方が問題が放電の周期が一致しやすく、問題が発生しやすいようです。
対症療法的な対策ではありますが、もっとも手軽な方法ですので、真っ先に試してみると良いでしょう。

リモコンが効かなくなった場合の対策(2)偏光フィルタ

 SHARPの液晶テレビでは本問題が発生しやすい機種があり、赤外線を低減するフィルタ(フィルム)を問題の発生する機器のリモコン受光部に貼って対応いるようです。(2006年4月現在)
 しかし、この方法だとリモコンの赤外線も弱めてしまうので、リモコン操作の範囲が狭くなる問題が発生する場合があります。

 そこで、赤外線フィルタではなく、偏光板を使って対策する方法について説明します。

 偏光板とは、下図の様に2枚の偏光板を重なると重ね方によって、光を透過したり、透過しなかったりする性質をもっています。

偏光板の特性
偏光板の特性

 また、液晶パネルにも偏光板が取り付けられており、液晶の一つ一つの画素は液晶分子の配向の変化で光を透過したり透過しなかったりすることで映像を表示しています。
 つまり、既にバックライト光を偏光板に通した偏向光なので、新たな偏光板を通して液晶テレビの画面を見ると、偏光板の角度によって映像が見えたり見えなくなったりするのです。

 次の写真の偏光フィルタの部分では、画面下のSHARPのロゴは光が透過してくっきりと見えるのに対し、画面の表示部分は偏光板によって光が遮られて真っ黒になっていることが分かります。

液晶テレビに偏光板を近づけた
液晶テレビに偏光板を近づけた

 そこで、この現象を利用して、テレビからの赤外線のみを阻止しつつ、リモコンからの赤外線を通過させれないかと考えました。
 次の対策手順に示すように、偏光板を小さく切ってリモコン受光部に貼ってみたところ、はっきりと効果が確認できたので、詳細を公開することになりました。

対策手順

 まず、購入()した偏光板を液晶テレビに近づけて真っ黒になる方向を確認します。そして、同じ方向のままで、影響を受ける機器(レコーダーなど)のリモコン受光部に近づけて効果を確認します。
 通常、レコーダーはテレビの下に入りますので真っ黒になる方向と同じ方向で取り付けます。テレビから放射された赤外線は床や壁、家具などに反射してレコーダーのリモコン受光部に混入します。反射の時に偏光方向が変わらない限り、偏光板でテレビからの赤外線を遮断することが出来ます。
 効果があるようであれば、貼り付ける受光部よりも大きめに切り取り、周囲に両面テープを使うなどの方法で貼り付けます。この時、両面テープがリモコン受光部にかからないようにします。

リモコン受光部に偏光板を貼り付ける
リモコン受光部に偏光板を貼り付ける

 角度が1度でもずれると効果が激減するので、貼り付ける角度には十分に注意が必要です。効果を確認しながら、何度か貼りなおす必要があるかもしれません。

 リモコン受光部が蛍光管の表示パネルの一部になっている機種では、やや大きめに貼った方が効果が高くなります。表示パネル全体に取り付けたり、表示パネルよりも前面にカバーのある機種ではカバー側に取り付けたりすることで、デザインを損なわない工夫も可能です。

表示カバー部に偏光板を貼り付ける
表示カバー部に偏光板を貼り付ける

カバーを閉じると違和感が無い
カバーを閉じると違和感が無い


 照明機器など天井に取り付ける場合は、取り付け位置からテレビに向かって偏光板が真っ黒になる方向に向けます。そして、偏光板の水平方向を軸に90度回転し、そのまま照明機器のリモコン受光部に貼り付けます。
 エアコンなどがテレビを正面にしてサイド方向ある場合は、同じように真っ黒になる方向から偏光板の垂直方向を軸に90度回転させて貼り付けます。

偏光板
品名サイズ (参考)
偏光板125 0.2mm、125×125mm 630
偏光板250 0.2mm、250×250mm 1,575
偏光板であそぼう(書籍) 2,100

照明機器への取り付け例
照明機器への取り付け例

本当に赤外線なのか

 最後に、本当に偏光板で赤外線が阻止されているのかどうかには疑問があることを、付け加えさせて下さい。実は、偏光板の偏光が交差して光を遮るのは、基本的には可視光(見える光)だけです。赤外線のように波長の長い光はかなり通過してしまっていることを実験で確認しています。
 市販のIR受信モジュールを液晶テレビに向けると、確かに交流電圧が発生しているのですが、IR受信モジュールは可視光にも反応を示し、特に波長の近い赤色には良く反応ます。つまり、赤外線ではなく赤外線に近い可視光線が影響している可能性もあるのです。
 又、あるメーカーのレコーダーでは、IR受信モジュールの金属シールドが、正しくGNDに接地されていないものもありまた。レコーダー内部で発生するノイズの影響でGND接地しない方が感度が高かったのかと思いますが、ノイズの混入しやすい状態となっており、IR受信モジュールの出力にバッファ回路を追加することで、受信性能を劣化させること無く改善することが出来ました。

 さらに、不具合の発生しやすいレコーダーをテレビの正面に配置すると、該当の液晶テレビ以外でも、多くの液晶テレビで発生することも分かりました。
 このように調べてゆくと、本当に赤外線だけが原因だとは確定できない状況だと感じています。

御注意:当サイトでは、本問題についてテレビ側の問題かリモコン受信側かを明確する立場ではありませんし、 明確に判断できていないので、どちらの不具合かについては明確には記載していません。
 しかし、万が一、掲載情報によって不当な不利益をもたらす表現があるようでしたら、該当部分の内容を修正しますので、
メールにて連絡下さい。
 テレビに38kHzのIR受信モジュールを向けると交流の出力が得られていることから、テレビ側から問題となる赤外線(又は可視光や電磁波)が発生しているは間違いありませんが、それが不具合かどうかは難しい問題であると考えています。赤外線を透過してしまう偏光板で大きな効果を得ていますので、赤外線に近い可視光が問題を引き起こしている可能性もあります。この場合は、リモコン受信部側にも不具合があることになります。
 また、赤外線が主原因であることに変わらなかったとしても、事実として影響を受けやすい機器と受けにくい機器が存在し、しかも、当サイト管理者の知る限りは一般的に影響を受けやすい機器の方が、リモコン利用範囲が広かったり、一部の照明機器や強い日光等でも影響を受けやすかったりすることが多い点から、影響を受けているリモコン受信側にも問題が無いとは言い切れないのです。
 ※問題の発生しているテレビのリモコンは問題なく動作している点も、その根拠の一つです。

 当サイト管理者の希望としては、まずは直面している問題についてテレビの製造メーカー側で早急に対処的な対策を積極的に実施していただきたいと思います。例えば、登録ユーザーに対して、対策用フィルタの無償配布などを保証期間を過ぎたものに対しても実施いただきたい。
 さらに、将来的には、少なくとも赤外線については妨害を出す方と受ける側の両方に規制を設けて、相互で干渉を防止し合うあうよう規則を決めてゆく必要があると思います。

地デジTopへ戻る