プロジェクト29 IRリモコン制御
1. 説明
IRリモコンはIR信号を使ってLEDを制御します。これにより、LEDの制御プロセスが大幅に簡素化されます。
2. 動作原理

このプロジェクトでは、約38Kのキャリア周波数を変調に使用することが多いです。
IRリモコンシステムは変調、送信、受信を含みます。データを変調して送信することで、伝送効率が向上し、消費電力が削減されます。
一般的に、キャリア変調の周波数は30kHz~60kHzの範囲内(通常は38kHz)です。矩形波のデューティ比は1/3で、下図のように送信側の455kHz水晶発振器によって決まります。
この端の水晶発振器には整数分周が必須で、周波数係数は通常12と評価されます。したがって、455kHz÷12 ≈ 37.9kHz ≈ 38kHzとなります。
38kHzキャリア(完全)送信図:

キャリア周波数: 38kHz
波長: 940nm
受信角度: 90°
制御距離: 6m
リモコンボタンの回路図:

3. 配線図

4. テストコード
基本ブロックを2つドラッグします。
「IR Remote」から「IR remote init」ブロックを見つけてドラッグし、ピンをIO19に設定します。「serial」から「baud rate」ブロックを追加し、9600に設定します。

「if」ブロックをドラッグし、その条件に「Received data」を設定します。IRモジュールがデータを受信した時のみ、「if」内のコードブロックが実行されます。

もう一つ「if」ブロックをドラッグし、条件を「Read the data > 0」に設定します。この条件が満たされた場合のみ、シリアルポートがデータの出力を開始します。
このセンサーは非常に高速に動作するため、制御ボタンを押している間にコードが2回以上実行されることがあります。しかし、同じコマンドの2回目は0の値を送信するため、重複を避けるために「>」ブロックが必要です。

「then」の後に「serial print」ブロックを追加し、「IR remote」モジュールから読み取ったデータを「warp」モードで出力するよう設定します。

最後に、実行後にデータをリフレッシュすることを忘れないでください。

完成コード:

5. テスト結果
配線を接続しコードをアップロードした後、シリアルモニターを開き、ボーレートを9600に設定します。リモコンのボタンを押すと、16進数の値が表示されます。

6. 拡張コード
この拡張コードでは、IRリモコンスイッチで制御されるライトを作成します。OKボタンを押すとLEDが点灯し、再度押すと消灯します。
この繰り返し操作を実現するために、変数「item」がコード全体で重要です。初回はitem = 0なので、「else」内のコードが実行され1に再代入されます。2回目はitem = 1なので、「if」ブロックが実行され0に再代入されます。
配線図:

コード:

7. コード説明
受信ピンを設定した後、IRリモコンモジュールを初期化します。

センサーがデータを受信したかどうかを判定します。受信していれば、関連するコードブロックが実行されます。

IRリモコンから受信したデータを読み取ります。

受信処理が完了した後、受信データをリフレッシュします。
