PIC16F84使用赤外線リモコン送信器


概略

	国内家電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のみです、他の
  メーカーの機器の動作確認が出来ましたら、メールを頂けると幸いです。

  疑問点等があればメールをください。出来る限りお答えするようにします。

  このプログラムは、フリーウェアーなので、自由に配布可能です。
  使用者自身の責任でご使用下さい。

  「このソフトによってどのような損害が出ても私は責任を負いかねます。」




* 赤外線リモコン送信器ソースファイル*−−
picrmc84.lzh ( 約22kByt )
ファイル内容

	rmc-014.asm		ソースファイル
	rmc-014.hex		Hexファイル
	p-rmc-84.gif		回路図
	readme.txt		説明ファイル






戻る