上記で作った回路と解析プログラムを使って、赤外線通信の解析をやってみました。
ArduinoのIR Remoteライブラリで受信したデータが、解析プログラムでどのような値になっているのかを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#include <IRremote.h> int pin_btn = 2; int pin_led = 3; int pin_ir = 4; IRrecv irrecv(pin_ir); decode_results res; void setup() { Serial.begin(115200UL); irrecv.enableIRIn(); pinMode(pin_btn, INPUT); pinMode(pin_led, OUTPUT); } void loop() { digitalWrite(pin_led, digitalRead(pin_btn)); if (irrecv.decode(&res)) { if(res.value != 0xFFFFFFFF){ Serial.println(res.value, HEX); switch(res.value){ case 0xFF30CF: Serial.println("01\n"); break; case 0xFF18E7: Serial.println("02\n"); break; case 0xFF7A85: Serial.println("03\n"); break; case 0xFF10EF: Serial.println("04\n"); break; default: break; } } irrecv.resume(); } } |
このプログラムでリモコンボタン1,2,3,4,5を受信した結果
リモコンボタン1の受信し、解析プログラムで計測・出力したものをExcelでグラフ化したもの
(誤差考慮のため二回分を足した)
FF30CF、ボタン1のライブラリでの値が、読み取れました。