#include //プログラムを実行するために必要なヘッダーファイルをインクルードします #include //プログラムを実行するために必要なヘッダーファイルをインクルードします int recvPin = 12; //赤外線信号を受けとる場所を指定する IRrecv irrecv(recvPin); const int ch1 = 4; //リレーモジュールIN2の接続先指定 const int ch2 = 2; //リレーモジュールIN1の接続先指定 int state1;//変数定義 int state2;//変数定義 void setup ( ) { pinMode(ch1, OUTPUT); //ピンをOUTPUTモードに指定 pinMode(ch2, OUTPUT); //ピンをOUTPUTモードに指定 irrecv.enableIRIn(); //受信機を起動 state1 = state2 = 1; //初期値を1(H)に設定 digitalWrite(ch1, state1); //書き込みできるように設定 digitalWrite(ch2, state2); //書き込みできるように設定 Serial.begin(9600); } int getCode(decode_results *results) { int code; if (results->decode_type != NEC) //NECファーマット以外の信号を受信したとき return 0; code = (results->value >> 8) & 0xff; //値をビットシフトし、抽出したい値を取り出す return code; //その値を返す } void loop ( ) { decode_results results; //結果を格納する int code; //変数定義 if (irrecv.decode(&results)) { code = getCode(&results); //得た値をcode変数へ代入する Serial.println(code, HEX); if (code == 0x30) //リモコン1chを押したとき { state1 = 1 - state1; digitalWrite(ch1, state1); } else if (code == 0x18) //リモコン2chを押したとき { state2 = 1 - state2; digitalWrite(ch2, state2); } irrecv.resume(); //次の値の準備 } }