赤外線リモコン受信モジュール GP1UXC41QS

gp1uxc41qs.jpg

配線

受信部(半球の突起)を正面に向けて・・・

ピン位置名称意味
Vout出力(Arduinoのデジタルピンへ)
中央GNDGround(ArduinoのGNDへ)
Vcc電源(Arduinoの5Vへ)

プログラミング

リモコンの赤外線を検出したときにLOW, 検出しないときにHIGHが出力される。 リモコンから送信されるデータはパルスの幅とパルス間の間隔で0, 1を表している。 以下にテレビのリモコンで使われるフォーマット の一つであるNECフォーマットのデータを表示するプログラム例を示す。

const int pin = 2;
void setup() {
  pinMode( pin, INPUT );
  Serial.begin( 115200 );
}
unsigned long last, code;
unsigned int custom;
unsigned char data;
void loop() {
  while ( 1 ) {
    while ( digitalRead( pin ) );     // 赤外線パルスを待つ
    last = micros();                  // パルスの時間を計測開始
    while ( !digitalRead( pin ) );    // 赤外線パルスの終了を待つ
    if ( micros() - last > 8400 ) break; 
                                      // パルス幅が8.4msより大きければ、符号の始まり
  }
  last = micros();                    // 次のパルスまでの時間を計測
  while ( digitalRead( pin ) );
  if ( micros() - last < 4200 ) {     // 次のパルスまでの時間が4.2ms未満ならば、「リピート」
    Serial.println( "Repeat" );
  } else {
    code = 0;                         // 符号はcodeに入る
    for ( int i = 0; i < 32; i++ ) {  // 符号は32ビットなので、32回繰り返す
      code >>= 1;                     // 符号は下位ビットが先頭なので、右にシフトしていく
      while ( !digitalRead( pin ) );  // 赤外線パルスの終了を待つ
      last = micros();                // 次のパルスまでの時間を計測
      while ( digitalRead( pin ) );
      if ( micros() - last > 1400 ) code |= 0x80000000;
                                      // 次のパルスまでの時間が1.4msより大きければ"1"なので、符号の最上位ビットを1にする
    }
    custom = code & 0xff;             // 符号のうち始めの16ビットがカスタマコード
    data = (code >> 16) & 0xff;       // 次の8ビットがデータ
    Serial.println( "custom=" + String( custom, HEX ) + " data=" + String( data, HEX ) );
                                      // カスタマコードとデータを16進数で出力
  }
  while ( !digitalRead( pin ) );
}

NECフォーマットを採用するいくつかのメーカーのリモコンコード(data)の例(16進数)

ボタン東芝日立サンヨーフナイ
10x010x710x100x01
20x020x720x110x02
30x030x730x120x03
40x040x740x130x04
50x050x750x140x05
60x060x760x150x06
70x070x770x160x07
80x080x780x170x08
90x090x790x180x09
100x0a0x700x190x0a
110x0b0x7a0x1a0x0b
120x0c0x7b0x1b0x0c
音量+0x1a0x120x090x60
音量-0x1e0x150x0a0x61
消音0x100x0b0x0b0x64
チャンネル+0x1b0x190x590x50
チャンネル-0x1f0x180x5a0x51
電源0x120x170x000x20

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS