Ⅳ 赤外線 LED 活用例 ( 赤外線通信 ) 3 実験 (1) 赤外線通信の様子を調べる回路の製作ア使用部品実験に使用する部品を表 Ⅳ-3に示す 表 Ⅳ-3 赤外線通信実験ボード部品表 No 部品名 個数 1 家庭用電化製品のリモコン 1 2 ブレットボード 1 3 赤外線受信モジュール 1 4 抵抗 430Ω 1 5 信号確認用赤色発光ダイオード 1 6 測定用オシロスコープ 1 7 電池 BOX 単三 4 本 1 8 電池スナップ 1 9 接続ケーブル 数本 10 電池 4 本 イ実験回路 受信回路図を図 Ⅳ-8に示す また 完成した写真を図 Ⅳ-9に示す 図 Ⅳ-9 完成基板ウ実験手順図 Ⅳ-8 受信回路図 1 家電用赤外線リモコンと製作した基板を 図 Ⅳ-10 のように配置する 図 Ⅳ-10 配置の様子 2 図 Ⅳ-11 のように オシロスコープをセットし波形を観測する 観測された波形をスケッチする -
図 Ⅳ-11 実験の様子 3 各自の測定波形と 図 Ⅳ-12 と比較検討する エ参考資料 赤外線通信の様子をオシロスコープで観測した波形の例を図 Ⅳ-12 に示す 図 Ⅳ-12 赤外線通信の波形 ( 参考 ) (2) 赤外線通信応用回路の製作 ア使用部品 赤外線送信基板の部品表を表 Ⅳ-4に 赤外線受信基板の部品表を表 Ⅳ-5に示す 表 Ⅳ-4 送信基板部品表 No 部品名 個数 1 PIC16F84A 1 2 ユニバーサル基板 1 3 赤外線発光ダイオード 1 4 赤色発光ダイオード 1 5 三端子レギュレータ 1 6 抵抗 430Ω 1 7 抵抗 200Ω 3 8 電解コンデンサ 47μF 2 9 セラミックコンデンサ 2 10 電池スナップ 1 11 錫メッキ線 数本 12 006P 電池 1 13 トグルスイッチ 1
表 Ⅳ-5 受信基板部品表 No 部品名 個数 1 PIC16F84A 1 2 ユニバーサル基板 1 3 赤外線受信モジュール 1 4 発光ダイオード各 4 色 4 5 三端子レギュレータ 1 6 抵抗 430Ω 5 8 電解コンデンサ 47μF 2 9 セラミックコンデンサ 2 10 電池スナップ 1 11 錫メッキ線 数本 12 006P 電池 1 イ製作する赤外線通信基板通信制御には送信回路側のマイコンを利用し 押しボタンスイッチにより通信情報を変化させ 受信基板側の4 種類のLED 点灯を制御するものである 製作する基板の写真を 図 Ⅳ-13と図 Ⅳ-14に示す 図 Ⅳ-13 通信基板送信部 図 Ⅳ-14 通信基板受信部
ウ赤外線通信によるロボットの制御ロボットは 赤外線 LEDから信号を送信し 受信した信号により 各部のモータを制御する 試作したロボットを 図 Ⅳ-15と図 Ⅳ-16に示す 図 Ⅳ-15 赤外線通信を用いた通信ロボット 図 Ⅳ-16 市販キットに赤外線通信を装備させたもの ( ア ) 市販のキットワイヤードコントロールキット シャベルトーザ ( タミヤ製 ) のワイヤードリモコンの制御部分に 今回製作した赤外線受信基板を取り付ける 受信信号をLEDで確認し そこに モータ駆動用 ICを追加する このキットはアームと左右のキャタピラ用モータと合計 3 個モータが使用されているため 3 個のモータドライブ用 ICを取り付ける 製作回路図を図 Ⅳ-17 図 Ⅳ-18に示す 図 Ⅳ-17 赤外線通信送信基板回路図
図 Ⅳ-18 赤外線通信受信部回路図 ( イ ) 制御プログラム 通信基板送信プログラムリスト ; 情報教育教材プログラムリスト ; 赤外線送信機プログラム LIST P=PIC16F84A ; 使用する PIC を指定 INCLUDE "P16F84A.INC" ; 読み込む設定ファイルを指定 LEDOFF EQU 0FFH ; LED 消灯データ設定 LEDON EQU 00H ; LED 点灯データ設定 CNT1 EQU 0CH ; タイマ1 用カウント変数 CNT2 EQU 0DH ; タイマ2 用カウント変数 CNT3 EQU 0EH ; タイマ3 用カウント変数 WWW EQU 0FH ; 搬送波用カウント変数 ORG 0 ; フ ロク ラム先頭アドレス BSF STATUS,RP0 ; バンク1を選択 CLRF TRISA ; porta をすべて出力 node に 設定 MOVLW 0FFH ; ポート B 設定用データ MOVWF TRISB ; ポート B をすべて入力モード に設定 BCF OPTION_REG,7 ; ポート B のプルアップ抵抗は 有効 BCF STATUS,RP0 ; バンク0を選択 MOVLW LEDOFF ; 消灯データを W レジスタにセ ット MOVWF PORTA ; 消灯データをポート A に出力 ; スイッチの読み込み ******************************************* REPEAT BTFSS PORTB,4 ; SW4 をチェック GOTO MAE ; 0(ON) ならば上へ BTFSS PORTB,3 ; SW3 をチェック GOTO MIGI ; 0(ON) ならば右へ BTFSS PORTB,0 ; SW0 をチェック GOTO USHIRO ; 0(ON) ならば後へ BTFSS PORTB,2 ; SW2 をチェック GOTO HIDARI ; 0(ON) ならば左へ BTFSS PORTB,1 ; SW1 をチェック GOTO NAKA ; 0(ON) ならば中へ ; 繰り返し ; 各スイッチのデータ送信 8 ビット (1+ABCD+10101) *********** MAE ; スタートビット 1 ; データ4 個 B0101 ; ストップビット 10101 MIGI ; スタートビット 1 ; データ4 個 B0010 ; ストップビット 10101 USHIRO ; スタートビット 1 ; データ4 個 B1010 ; ストップビット 10101 HIDARI ; スタートビット 1 ; データ4 個 B0001 ; ストップビット 10101
NAKA ; スタートビット 1 ; データ4 個 B0000 ; ストップビット 10101 ; データ0の送信 ******************************************* B_0 MOVLW D'50' ; 12 50=600μS MOVLW LEDOFF ; 消灯データを W レジスタにセ ット MOVWF PORTA ; 消灯データをポート A に出力 L0 CALL TIMER1 GOTO L0 ; データ1の送信 ******************************************* B_1 MOVLW D'25' ; 12 25 2=600μS L1 MOVLW LEDON ; 点灯テ ータを W レシ スタにセット MOVWF PORTA ; 点灯テ ータをホ ート A に出力 CALL TIMER1 MOVLW LEDOFF ; 消灯テ ータを W レシ スタにセット MOVWF PORTA ; 消灯テ ータをホ ート A に出力 CALL TIMER1 GOTO L1 ; タイマサブルーチン ******************************** TIMER1 MOVLW D'6' ; 12μ 秒タイマサフ ルーチン MOVWF CNT1 LOOP1 NOP NOP DECFSZ CNT1,1 GOTO LOOP1 TIMER2 MOVLW D'62' ; 0.1 ミリ秒タイマサフ ルーチン MOVWF CNT2 LOOP2 NOP DECFSZ CNT2,1 GOTO LOOP2 TIMER3 MOVLW D'100' ; 10 ミリ秒タイマサフ ルーチン MOVWF CNT3 LOOP3 NOP CALL TIMER2 DECFSZ CNT3,1 GOTO LOOP3 END ; プログラムの終わり 通信基板受信プログラムリスト ; ********************************************************** ; 情報教育教材プログラムリスト ; 赤外線受信機プログラム ; ********************************************************** LIST P=PIC16F84A ; 使用する PIC16F84A を指定 INCLUDE "P16F84A.INC"; 読み込む設定ファイルを指定 ; *************************************************************** LEDOFF EQU 00H ; LED 消灯データ設定 CNT1 EQU 0CH ; タイマ用カウント変数 KEEP EQU 0DH ; 受信データ退避 WWW EQU 0EH ; 搬送波用カウント変数 ; ************************************************************** ORG 0 ; フ ロク ラム先頭アト レス BSF STATUS,RP0 ; バンク1を選択 MOVLW 1FH ; ホ ート A 設定用データ MOVWF TRISA ; ホ ート A をすべて入力モート CLRF TRISB ; ホ ート B をすべて出力モート BCF STATUS,RP0 ; バンク0を選択 MOVLW LEDOFF ; 消灯テ ータを W レシ スタにセット MOVWF PORTB ; 消灯テ ータをホ ート B に出力 ; 赤外線モジュールの読み込み ********************************* REPEAT (START_BIT) GOTO RX ; ON ならば受信ルーチンへ ; 繰り返し ; スタートビット2 回目のチェック ****************************** RX MOVLW D'35' ; 12 35=420μS CH CALL TIMER1 GOTO CH (START_BIT) ; OFF ならば間違いなので戻る CLRF KEEP ; 受信テ ータ退避レシ スタ 1 のクリア ; 送信データ4ビット分の読み取り ****************************** MOVLW D'50' ; 12 50=600μS 動作テ ータ 0 ヒ L0 CALL TIMER1 GOTO L0 BSF KEEP,3 ; ON ならば退避レシ スタ1にセット MOVLW D'50' ; 12 50=600μS 動作テ ータ 1 ヒ L1 CALL TIMER1 GOTO L1 BSF KEEP,2 ; ON ならば退避レシ スタ1にセット MOVLW D'50' ; 12 50=600μS 動作テ ータ 2 ヒ L2 CALL TIMER1 GOTO L2 BTFSS PORTA,4 ; 赤外線モシ ュ-ルをチェック BSF KEEP,1 ; ON ならば退避レシ スタ1にセット MOVLW D'50' ; 12 50=600μS 動作テ ータ 3 ヒ L3 CALL TIMER1 GOTO L3 BSF KEEP,0 ; ON ならば退避レシ スタ1にセット ; ストップビット5 個 (10101) のチェック ************************* MOVLW D'50 '; 12 50=600μS 動作テ ータ 4 ヒ ット 目 (STOP_BIT0) L4 CALL TIMER1 GOTO L4 ; OFF ならば間違いなので戻る MOVLW D'50 ; 12 50=600μS 動作テ ータ 5 ヒ ット 目 (STOP_BIT1) L5 CALL TIMER1 GOTO L5 ; ON ならば間違いなので戻る MOVLW D'50' ; 12 50=600μS 動作テ ータ 6 ヒ (STOP_BIT2) L6 CALL TIMER1 GOTO L6 ; OFF ならば間違いなので戻る MOVLW D'50' ; 12 50=600μS 動作テ ータ 6 ヒ (STOP_BIT3) L7 CALL TIMER1 GOTO L7 ; ON ならば間違いなので戻る MOVLW D'50' ; 12 50=600μS 動作テ ータ 6 ヒ (STOP_BIT4) L8 CALL TIMER1 GOTO L8 ; OFF ならば間違いなので戻る ; データ受信後の処理 ****************************************** MOVF KEEP,0 ; KEEP1 の内容を W レシ スタへ転送 MOVWF PORTB ; OK なら W レシ スタのテ ータをホ ート B に出力 ; タイマサブルーチン ****************************************** TIMER1 MOVLW D'6' ; 12μ 秒タイマサブルーチン MOVWF CNT1 LOOP1 NOP NOP DECFSZ CNT1,1 GOTO LOOP1 END ; プログラムの終わり