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


概略

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

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

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

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




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

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






戻る