リモコンから送信した赤外線を赤外線受信モジュールで受信します。
LESSON 036 リモコンから送信したデータを読み取る。
LESSON 037 リモコンから送信したデータで制御する。
○ 今回はIRレシーバー(赤外線受信モジュール)とIRリモート(赤外線の送信機・リモコン)についてを説明します。
○ 原理はリモコンから送信した38KHzのパルス信号の赤外線を赤外線受信モジュールで受信します。
パルス信号の組み合わせでリモコン操作が可能になりますが、
スタート部 データコード部 ストップ部
の3部構成のビット列になっています。
送りたい信号をエンコーダでパルス信号に変換した赤外線で送信
↓
赤外線受信モジュールで受信した信号をデコードで変換し必要な信号を受信
○ 主な赤外線リモコン信号のフォーマットは、
・ 家電製品協会(AEHA)方式
・ NEC方式
・ ソニーSIRC方式
があります。また、世界には多くの独自のフォーマットが存在します。
#include<IRremote.hpp>
int IRPin = 2;
IRrecv IRrec(IRPin);
decode_results results;
void setup() {
IRrec.enableIRIn();
Serial.begin(9600);
delay(500);
}
void loop() {
if (IRrec.decode(&results)){
Serial.println(results.value);
Serial.println(results.value, HEX);
Serial.println(results.bits);
switch (results.decode_type){
case NEC: Serial.println("NEC"); break ;
case SONY: Serial.println("SONY"); break ;
case RC5: Serial.println("RC5"); break ;
case RC6: Serial.println("RC6"); break ;
case SHARP: Serial.println("SHARP"); break ;
case JVC: Serial.println("JVC"); break ;
case SAMSUNG: Serial.println("SAMSUNG"); break ;
case LG: Serial.println("LG"); break ;
case WHYNTER: Serial.println("WHYNTER"); break ;
case PANASONIC: Serial.println("PANASONIC"); break ;
case DENON: Serial.println("DENON"); break ;
default:
case UNKNOWN: Serial.println("UNKNOWN"); break ;
}
IRrec.resume();
}
delay(1000);
}
#include <IRremote.hpp>
複数の種類のコントローラの赤外線信号を送受信出来るライブラリです。
IRrecv 変数1(ピン);
赤外線受信用 の変数を設定
decode_results 変数2;
デコードの結果を 変数2 に設定
- void setup() 内
変数1.enableIRIn();
受信を開始
- void loop() 内
変数1.decode(&変数2))
IR レシーバーに感知したデータをデコード
Serial.println(変数2.value);
受信した結果を10進数で表示
Serial.println(変数2.value, HEX);
受信した結果を16進数で表示
Serial.println(変数2.bits);
受信した結果をビット長で表示
Serial.println(変数2.decode_type);
受信した結果のデコードタイプを表示
変数1.resume();
IR レシーバーをクリアにする。
リモコンの ” 0 ” を押すと デコードされた値が表示されます。
リモコンから送信したデータで制御する。
- void loop() 内
if( 変数2.value == コード)
{ Serial.println(“ ”); }
デコードされた値と 指定したコードが等しければ、— 0 – を表示します。
○ LESSONはワザと二つにしました。
LESSON 36 では リモコンの各スイッチの信号を調べるため
LESSON 37 では リモコンの遠隔操作のための取扱い方法
遠隔操作出来るリモコンを探して見てはいかがでしょうか。
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。