電子工作をはじめて3年くらい経つんだけど今回作ってみたものが一番衝撃だった。
arduinoに赤外線センサーと赤外線LEDをつけてリモコンの信号を読み取り、リモコンを作ってしまうというもの。
今回arduino含めて2千円~3千円でできてしまった。
ちなみにセンサーは
PL-IRM0101を使用
左 7番ピン 真ん中 GND 右 5V
そもそも赤外線の信号はパルス幅を変化させて送っているものでその信号の時間が読み取れれば複製は簡単にできてしまう。
スケッチ例はこんな感じ
const int READ_PIN = 7;
int state = 0;
unsigned long now = micros();
unsigned long change = micros();
void setup()
{
Serial.begin(57600);
pinMode(READ_PIN, INPUT);
state = digitalRead(READ_PIN);
}
void loop()
{
if (state != digitalRead(READ_PIN)) {
now = micros();
Serial.print((now - change) / 10, DEC);
Serial.print(",");
change = now;
state = !state;
}
}
シリアルモニタから下記のような信号が抽出できる
4440,4444,512,1660,496,560,520,1652,440,1712,520,560,516,572,
492,1656,516,568,512,576,500,1644,520,568,456,632,496,1656,512,
1652,500,568,512,1652,512,1660,500,568,520,1644,440,1712,520,
1648,484,1688,496,1660,516,1644,444,648,492,1656,512,572,492,
568,528,560,480,608,492,568,516,568,508,1660,500,1652,524,564,
436,648,492,568,520,568,492,568,520,564,520,560,440,648,500,1644,
516,1660,496,1656,524,1648,492,1652,524,1676,492,5252,4452,4432,
488,1688,492,564,528,1648,436,1708,524,564,484,600,492,1656,524,
560,488,600,492,1652,528,560,480,608,512,1632,512,1660,492,568,
528,1644,512,1660,492,568,528,1644,480,1672,520,1644,508,1668,
492,1660,512,1660,476,588,540,1628,512,572,488,572,528,560,504,584,
484,576,544,536,512,1660,492,1660,520,568,476,580,528,560,512,568,492,
576,524,564,516,564,476,588,520,1648,512,1660,496,1656,516,1648,500,
1660,540,1652,492,
これならあらかじめリモコンの信号を記録しておけば壊れてもarduinoで代用できる(笑)
残念ながら買った赤外線LEDの出力が低すぎて、TVと5cmぐらい近づけないと動作しなかった・・・。しかも動作で範囲が狭く1.35~1.6Vぐらいでarduino出力5Vから手持ちの抵抗で減圧するのが大変だった。(買うときは注意してください)
これなら、エアコンのリモコンを読み取って部屋の温度調節できそう。
今、高出力の赤外線LEDを手配してます・・・。
⇒
エアコンを動かしてみます