PIC 07:赤外線コントロールB 受信部の実験


赤外線コントロールの受信部
 送信部を作って、やはり受信が出来ないと動いているのかわかりませんので、とりあえず動くことの確認が出来れば良しと実験しました。
 基本的に「LEDのオンオフが出来ればOK」としました、プログラムは少ないので必要ならコントロール・プログラムを入れれば何かをコントロール出来ます。

受信部

 簡単な物で確実に動作出来る物を作っておけば、後は移植して利用するのに便利です。赤外線近距離コントロールは何かにつけて使えそうです。ただボタンのオン・オフだけでは利用は制限されますがフォマットの変更で大きなDATAの送受信も出来るし興味は広がります。

 それから、作ってみて今後の展開はかなり広い物があり使い道もたくさんありそうです。身近な物でオンオフ出来れば便利な物がたくさんあります。
 最近では車のドアロックが何かのリモコンでさせる物が出て来ましたが、これって赤外線でも出来そうだし応用は広がりそうです。

まだ完全ではない!
 現在はまだ実験中で動作は不安定で誤動作します、受信で信号が不安定になるとロックしてしまい何故か動かなくなりました。無限ループに入ってしまうのかも知れません、今後の改善が必要です。

 SOFTは改善の余地がたくさんあります。

構造はとても簡単です!
 部品はIC化されているので本体は極めて簡単です。信号を捕らえ後はSOFTでどう処理するかです。ICもそれほど高価なものではありません。
 何しろTVやビデオ・エアコンなどたくさんの所で利用されています。中をばらしてみればリモコンもそうですが受信部も簡単です。

 写真のように赤外線の受光素子(数100円)をPICで直接受け取ることが出来ます。入って来た信号はフォマットの通り送られてくるので、これを解読して処理をすれば良いのです。

受信部回路

動作
 とりあえず、送信で送られた信号(ボタン)を1-7としてLEDでオンオフさせました。動作は同じなので全てのボタンを付けず、代表としてLEDは4つ付け動作の確認としました。

 オン・オフやトグル式のオンオフまたひっくり返すなど、幾つかの処置をしてみました。

 ICは16F819を使ってみました、当初16F84Aを使ったのですが動作はおなじなので使っています。それとまだ動作には満足してないのでしばらくはSOFTの改良に時間が掛かるかも知れません。

 それと、送信部・受信部どちらが悪いのが分からない所もあって何時になるかはなんともいえません。(仕事ではないのでマイペースで進めます)。
 実験中10MHzでどうも不安定なので机の中でゴロゴロしていたセラロック6MHzの物に交換しました。幾らか良い程度でしょうか(プログラムが悪いのかも知れません)。

 2007/FEB/3 


-----  プログラム  -----
 WARKにDATAを取り入れて 戻る。ディバイスコード3Bit+スイッチコード5Bitが入る。

;---------------------------------------------
;  16ビットデータ受信
; PORTA,4 L=アクテイブ
; WAIT300/WAIT600(μSec)
;---------------------------------------------
R_BIT	movlw	0x03
	movwf	BITCNT
S_LP	CALL	WAIT300		;"0"を待つ
	btfss	PORTA,4
	goto	R_BIT
	decfsz	BITCNT,f
	goto	S_LP
;---------------------------------------------
SB2	BTFSC	PORTA,4		;RA4="1"?
	GOTO	SB2		;
	CALL	WAIT300		;タイミングを取る
	BTFSC	PORTA,4		;RA4 again
	GOTO	R_BIT		;
	CLRF	WORK		;バッファクリア
;---------------------------------------------
	MOVLW	3		;Counter
	MOVWF	BITCNT
CDLP	CALL	WAIT600		;600μsec
	BTFSC	PORTA,4		;"1"?
	BCF	STATUS,C		;Carry reset
	BTFSS	PORTA,4		;"0"?
	BSF	STATUS,C		;Carry set
	RLF	WORK,F		;Carry to WORK
	DECFSZ	BITCNT,F		;End ?
	GOTO	CDLP		;No
;-----  セパレータ -----
	CALL	WAIT600B		;1Bit
	BTFSS	PORTA,4		;"0"?
	GOTO	R_BIT		;No
	CALL	WAIT600B
	BTFSC	PORTA,4		;"1"?
	GOTO	R_BIT		;No
;---- スイッチ・コード -----
	MOVLW	5		;Counter
	MOVWF	BITCNT
DTLP	CALL	WAIT600		;1Bit
	BTFSC	PORTA,4		;"1"?
	BCF	STATUS,C		;Carry reset
	BTFSS	PORTA,4		;"0"?
	BSF	STATUS,C		;Carry set
	RLF	WORK,F		;Carry to WORk
	DECFSZ	BITCNT,F		;End ?
	GOTO	DTLP		;No
;---------------------------------------------
	CALL	WAIT600B		
	BTFSC	PORTA,4		;"1"?
	GOTO	R_BIT		;No
	CALL	WAIT600B		;
	BTFSS	PORTA,4		;"0"?
	GOTO	R_BIT		;No
	CALL	WAIT600B		;
	BTFSS	PORTA,4		;"0"?
	GOTO	R_BIT		;No
	RETURN

[もどる]もどる  [MAIN MENU

inserted by FC2 system