Arduinoでリモコン

IR制御ライブラリ

部品

受信モジュールのOUTをD11pinにつなぐ。電源は3.3V。 送信用のLEDはD3から100オーム経由でGNDへ。

受信テスト

example/IRrecvDump を実行して受信モジュールに向けてリモコンのボタンを押すと、シリアルモニタにコードが出てきた。

外光を拾うのか、なにやら定期的につぶやく人がいるので 遮光したり超近づけたり繰り返し取得したりして精度あげる。

照明リモコンを調べるとこんな感じだった。NECフォーマット、32bitらしい。

ボタン コード
全灯 NEC: 176807F
調光 NEC: 17640BF
豆球 NEC: 176C03F
消灯 NEC: 17600FF

コマンド発行

こんなかんじであっさり動作。すばらしいな。。

#include <IRremote.h>
IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
  irsend.sendNEC(0x176807f,32); // ON
  delay(1000);
  irsend.sendNEC(0x17600ff,32); // OFF
  delay(1000);
}

エアコン

エアコンのコードは長すぎてIRremoteでは難しいらしい。ていうか100で打ち止めになってるのがいかんのじゃろ。

  • http://forum.arduino.cc/index.php/topic,70070.0.html
  • http://forum.arduino.cc/index.php/topic,152704.0.html

をみて、RAWBUFを増やしたIrRemoteでRAWを抜き出してもうまくいかん。なぜだ。