文書の表示以前のリビジョンバックリンクPDF の出力全て展開する/折り畳むODT 出力文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== 赤外線リモコンリピータ ====== ===== 概要 ===== 自宅内には、多数のAV機器があります。 しかし、リモコン操作を行うときに、次のような問題が時々発生します。 * 途中に障害物があったり、 * 操作位置の角度が厳しかったり、 * 距離が離れすぎていたり、 そのためにリモコンが効かず、操作する人間側が、少し移動しなければなりません。 そこで、リモコンが送信する赤外線を、途中で中継(リピータ)することにより、これらの問題を緩和させることにしました。 <リモコンの到達距離の延長の考え方> {{:imgpaste:202004:htmikan-20200429-111456.png?500}} ===== 動作原理 ===== 全体は、次の3つのブロック(モジュールまたは部品)で構成されます。 * リモコンから送信される赤外線信号を受信する“赤外線リモコン受信モジュール" * 38kHzの搬送波「キャリア」信号を発生させる“PIC12F683(CCPモジュール)" * 赤外線を出力(発光)する“赤外線発光LED" ※赤外線リモコン受信モジュールについては、前回作成した、“赤外線データ通信(USART)"を参照してください。 <処理の流れ> - リモコンからは、操作にあわせて、“赤外線(38kHzの搬送波「キャリア」)"が送信されます。 - その赤外線を、“赤外線リモコン受信モジュール"で受信します。(キャリアは削除される) - PIC12F683が内蔵している、CCPモジュールをPWMモードで動作させて、“38kHzのキャリア信号"を\\ 発生させます。 - 受信した信号にあわせて、“PWMをON/OFF"します。 {{:imgpaste:202004:htmikan-20200429-111559.png?500}} ===== 回路図 ===== {{:imgpaste:202004:htmikan-20200429-111616.png}} ===== ソースコード ===== <code c infraredRaysRepeater_v1.c> //********************************************************************** /* 「赤外線リモコンリピータ」 */ //********************************************************************** #define LED GPIO.F1 //********************************************************************** void Pwm_Change_DutyEx(unsigned int duty_ratio) { CCPR1L = duty_ratio >> 2; CCP1CON.DC1B0 = duty_ratio & 0b00000001; CCP1CON.DC1B1 = (duty_ratio & 0b00000010) >> 1; } //********************************************************************** void main() { OSCCON = 0b01110000; // クロックを8Mhzに設定する。 CMCON0 = 0b00000111; // コンパレータは使用しない。 ANSEL = 0b00000000; // A/D変換は使用しない。 TRISIO = 0b00001001; // Pwm_Init(38000); // 38kHz duty=50% Pwm_Change_DutyEx((PR2 * 4) / 2); Pwm_Stop(); // while (1) { //赤外線リモコン受信モジュールの出力信号の立下りをチェックする。 while (GPIO.F3 == 1) ; //38kHzのキャリアを出力する。 Pwm_Start(); LED = 1; //赤外線リモコン受信モジュールの出力信号の立ち上がりをチェックする。 while (GPIO.F3 == 0) ; //38kHzのキャリアを停止する。 Pwm_Stop(); LED = 0; } } //********************************************************************** </code> ===== 動作確認 ===== いつものブレッドボードに実装し、動作を確認してみました。 左側から、赤外線リモコン受信モジュール、LED、PIC12F683、赤外線発光LEDです。 {{:imgpaste:202004:htmikan-20200429-111831.png?500}} 実際には、赤外線リモコン受信モジュールと赤外線発光LEDが干渉しないように互いの距離を離します。 {{:imgpaste:202004:htmikan-20200429-111851.png?500}} 電池を含めた全体の写真です。 赤外線発光LEDは、30cmくらい離しました。 {{:imgpaste:202004:htmikan-20200429-111910.png?500}} 居間のテレビのリモコンで試してみました。 結果的には、2倍以上の距離でテレビの操作が出来るようになりました。 {{:imgpaste:202004:htmikan-20200429-111928.png?500}} 如何ですか? 本リピータを使うことにより、AV機器の収納がし易くなり、部屋がすっきりしますね! ^_^ <callout type="warning" title="著作権表示 copyright notice"> このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。[[elechobby:picdic:picdic|詳細]] This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.[[elechobby:picdic:picdic|Details]] </callout> elechobby/picdic/pic12f683/23.txt 最終更新: 2025/10/17 14:29by 127.0.0.1