概略 国内家電10社(8種類)のコード方式に対応、35個までのいずれのキーに も自由にどのコード方式の割り付けが可能にした赤外線リモコン送信器です。 モード(メーカー)の切り替える事無く、1個1個のキーに別々のメーカーの コードを設定する事で一個の送信器で複数のメーカーの機器の制御をする事が 可能になります。 ただし、学習機能は有りませんから、目的に合わせてプログラムのソースファ イルのコードテーブルを書き換える必要が有ります。 また、1つのメーカーに複数ののコードが有るため、メーカーが合っていても 必ず動作するとは限りません、予め設定して有るタイミングは各メーカーの代 表的なTVリモコンのタイミングです、動作しない時はモードのタイミング設 定のの変更が必要です。 また目的のキーのコードは解析器で調べて説明に従って設定して下さい。この 時に、解析器のモードをメーカーごとの指定のモードに合わせて調べないと表 示したコードが送信器と合わなくなることがありますから、解析器のページも よく読んでから作成して下さい。 電源は乾電池2本で3Vで動作しています、規格外ですが2V程度までは動作 可能でした。非動作時の消費電流はスリープモードになっているため数μAで す、規格を考えると電池3本にしたほうがよいかも知れません。 回路図
コード設定 ソースファイルの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, pw-up timer on,で書き 込んで下さい。(Clock 4MHz) ============================================================================ バージョン履歴 Ver014 最大35キーに拡張 Ver013 クロック4MHz、割り込み未使用、キャリア38kHz以外に33 kHzと40kHzを追加 Ver012 Key数25個、スリープ対応、8種類のコード対応 Ver0.11 A,B独立リピート機能、Bシャープ仕様 Ver0.10 最大35キーに対応(A,B自由仕様),リピート機能追加 Ver0.02 送信データ部をA,Bモードを自由仕様に変更 Ver0.01 テストスタートバージョン 2キー仕様(A,B標準仕様) ============================================================================ 参考文献 トランジスタ技術 1998年12月号 最後に 2000/02/03現在テストを出来たのはシャープ製TVとVTRのみです、他の メーカーの機器の動作確認が出来ましたら、メールを頂けると幸いです。 疑問点等があればメールをください。出来る限りお答えするようにします。 このプログラムは、フリーウェアーなので、自由に配布可能です。 使用者自身の責任でご使用下さい。 「このソフトによってどのような損害が出ても私は責任を負いかねます。」
ファイル内容 rmc-014.asm ソースファイル rmc-014.hex Hexファイル p-rmc-84.gif 回路図 readme.txt 説明ファイル