ときどきやりたくなる赤外線通信について、Cardputerの購入をきっかけに試してみました。
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 |
#include <IRremote.h> #include <M5Core2.h> int RECV_PIN = 36; IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ M5.begin(); irrecv.enableIRIn(); M5.Lcd.setTextSize(2); M5.Lcd.setCursor(0, 0); M5.Lcd.print("Test for IR receiver 2"); } void loop() { if (IrReceiver.decode()) { Serial.println(IrReceiver.decodedIRData.command, HEX); Serial.println(IrReceiver.decodedIRData.protocol); if (IrReceiver.decodedIRData.protocol == UNKNOWN) { Serial.println("unknown"); } IrReceiver.resume(); } } |
送信はCardputerのデモアプリを使います。コンマ区切りでアドレス、データと二つの数値を送ることを指示されます。
受信側は、M5Stack Core2の拡張ポートモジュールを使いました。
コマンドにデータが表示されます。アドレスは何に反映されるか不明でした。プロトコルはメーカのデータやunknown が表示されるようです。
テレビリモコンでは、メーカコードと呼ばれるものがプロトコルに、チャンネル番号-1 がコマンドとして取得できました。
過去の記事では、もっとローレベルなテストをしていました。
今記事を見てみて、とても参考になります。Blogのいいところですね。
参考)
https://github.com/Arduino-IRremote/Arduino-IRremote
https://forum.arduino.cc/t/ir-remote-error/695087/3?_gl=1*1clcnlm*_up*MQ..*_ga*Mjc1MzAzMTU4LjE3NDYxNzAyMjk.*_ga_NEXN8H46L5*MTc0NjE3MDIyNy4xLjAuMTc0NjE3MDIyNy4wLjAuMTk2MTQ0ODI.
過去記事)
https://decode.red/net/archives/766
https://decode.red/net/archives/416
http://bitlife.me/em/2017/08/18/ir-remote/
http://decode.red/ed/archives/315