概略 国内家電10社(8種類)のコード方式に対応、6(3)個までのいずれのキーに も自由にどのコード方式の割り付けが可能にした赤外線リモコン送信器です。 モード(メーカー)の切り替える事無く、1個1個のキーに別々のメーカーの コードを設定する事で一個の送信器で複数のメーカーの機器の制御をする事が 可能になります。 ただし、学習機能は有りませんから、目的に合わせてプログラムのソースファ イルのコードテーブルを書き換える必要が有ります。 また、1つのメーカーに複数ののコードが有るため、メーカーが合っていても 必ず動作するとは限りません、予め設定して有るタイミングは各メーカーの代 表的なTVリモコンのタイミングです、動作しない時はモードのタイミング設 定のの変更が必要です。 また目的のキーのコードは解析器で調べて説明に従って設定して下さい。この 時に、解析器のモードをメーカーごとの指定のモードに合わせて調べないと表 示したコードが送信器と合わなくなることがありますから、解析器のページも よく読んでから作成して下さい。
キーを6個にする場合は内部RC発信器にします、3個の場合は4MHzの発 信器を使用しXTモードにします。安定性を考えると3個にしたほうが良いと 思います。こちらで、シャープ製TVとVTRを使いテストをした結果では、 内部発信器でリモコン動作は問題なく動作しましたが、長期テストを行ったの ではないので、疑問は残ります。 電源は乾電池2本で3Vで動作しています、2V程度までは動作可能でした。 非動作時の消費電流はスリープモードになっているため電流が少なすぎて当方 にあるテスター(50μAmax)で測定不能でした。 回路図
コード設定 ソースファイルの80行目辺りからが、送信データテーブルです、その内容と 設定例を書いておきます。 1・送信データテーブルの内容 Byt 0 モードデータ bit0 _mode_0 ; リモコンモードフラグ bit1 _mode_1 bit2 _mode_2 000 モード0 (日立、東芝、NEC) 001 モード1 (松下) 010 モード2 (サンヨー) 011 モード3 (ビクター) 100 モード4 (パイオニア) 101 モード5 (三菱) 110 モード6 (ソニー) 111 モード7 (シャープ) bit3 _mode_rp ; リピート機能 1 = 有り 0 = 無し bit4 ~ bit7 ; リピート回数 0 = 制限無し 1 ~ F = 回数指定 Byt 1 送信データ数 合計8Bytまで bit0 ~ bit3 ; 送信バイト数 最大8Byt bit4 ~ bit7 ; 送信端数ビット数 最大8bit 0x24 = 4Byt + 2bit Byt 2 ~ Byt 9 リモコンコード 2・設定例 No,03 キーボタンにモード4(パイオニア)をリピート有り(キーonの 間出力しっぱなし)データ数が4BytでTVの電源onのコードを設定 --- key 03 --- retlw b'00001100' ; モードデータ retlw 0x04 ; 送信データ数 retlw 0xaa retlw 0x55 retlw 0x1c retlw 0xe3 retlw 0x00 retlw 0x00 retlw 0x00 retlw 0x00 モードタイミング設定 赤外線リモコンでは、最初に長めのスタートパルスが有りその後からデータパ ルスが有りますその後からがデータ部でデータは、パルスとパルスの間隔の長 さで1と0を現します、間隔の広い場合1とし狭い場合0とします、データの 数はは大半のメーカーは8の倍数となっていますが一部そうなっていないメー カーもあります、最後にストップ信号を1個送信して終わります。 ただし、すべてがこうなっている訳ではなく一部のメーカーでは、スタートパ ルスが無く最初からデータ部であったり、データ部が、パルスの間隔を変化さ せるのではなくパルスの長さを変化させているものもあります。また、データ を2かいにわけて送信しているメーカーもあります。 パルスは、38kHzで変調が掛かっていますが、この周波数もメーカーによ り33kHzや40kHzの変調を行っているメーカーが有ります。 パルス波形はわかりやすく書くためにポジティブパルスで書いてありますが、 秋月通商で販売している、赤外線リモコンのセンサーはネガティブパルスを出 力してます。 A B C E D F C E D F D F C E C E D F G H A _____ _ _ _ _ _ _ _ _ _ ___ _| |___| |_| |___| |_| |___| |___| |_| |_| |___| |_____ ___| Start 0 1 0 1 1 0 0 1 Stop Stat Data 0x9a ; --- モード0設定値 --- (1 = 0.1ms) vl_0_start_h equ 90 ; スタート信号 on 時間 ---- A vl_0_start_l equ 42 ; スタート信号 off 時間 --- B vl_0_data_0h equ 7 ; データ0信号 on 時間 ----- C vl_0_data_1h equ 7 ; データ1信号 on 時間 ----- D vl_0_data_0l equ 5 ; データ0信号 off 時間 --- E vl_0_data_1l equ 16 ; データ1信号 off 時間 --- F vl_0_stop_h equ 7 ; ストップ信号 on 時間 ----- G vl_0_rptwait equ 0 ; リピート待ち時間 (1 = 10ms)- H optset_0: macro bcf _ScnStatus,_carri40 ; キャリア38kHz bcf _ScnStatus,_carri33 bcf _ScnStatus,_sharp ; 通常モード endm ソースファイルの500行目辺りからが、モードタイミングの設定となってい ます、各タイミングは、equ の後の数値を変える事で変更が出来ます。数値を 1変えると0.1ms変化します。ただし、リピート待ち時間だけは1変える と10ms変化します。 キャリア周波数は、33kHzの場合は bcf _ScnStatus,_carri40 bsf _ScnStatus,_carri33 ; キャリア33kHzon キャリア周波数は、38kHzの場合は bcf _ScnStatus,_carri40 bcf _ScnStatus,_carri33 キャリア周波数は、40kHzの場合は bsf _ScnStatus,_carri40 ; キャリア40kHzon bcf _ScnStatus,_carri33 通常送信の場合 bcf _ScnStatus,_sharp ; 通常モード 2ブロック送信の場合 bsf _ScnStatus,_sharp ; 2ブロック送信モード アセンブル方法 MPASM.EXE で、数値(Radix)のデホルトを10進数(Decimal)にしてアセンブル を行って下さい。 書き込み時のコンフィグレーションレジスタは、外部発信器を使用する場合は XT, /MCLR = VDD 内部RC発信器にする場合は INTRC,/MCLR = VDD で書き込 んで下さい。なお、ソースファイルには内部RC発信器で書いてあります。 ============================================================================ バージョン履歴 Ver5.09 12C509 スタートバージョン Ver5.00 テストスタートバージョン 12C509 プログラム検証用 (16F84) 6キー仕様 ============================================================================ 参考文献 トランジスタ技術 1998年12月号 最後に 2000/02/03現在テストを出来たのはシャープ製TVとVTRのみです、他の メーカーの機器の動作確認が出来ましたら、メールを頂けると幸いです。 疑問点等があればメールをください。出来る限りお答えするようにします。 このプログラムは、フリーウェアーなので、自由に配布可能です。 使用者自身の責任でご使用下さい。 「このソフトによってどのような損害が出ても私は責任を負いかねます。」
ファイル内容 rmc-509.asm ソースファイル rmc-509.hex Hexファイル p-rmc-09.gif 回路図 readme.txt 説明ファイル