##やりたいこと
Arduino + IRremoteを使用してリモコンを作成したいです。
##これまでに試したこと
リモコンの学習は「IRrecvDumpV2」で行いました。
シリアルモニタに表示されたデータを送信プログラムに書き込み、Arduinoから赤外線信号を送信しています。
送信側のプログラムを掲載します。
(とりあえず、Onデータだけで試しています。)
html
1#include <IRremote.h> 2IRsend irsend(26); 3 4int khz = 38; 5unsigned int onData[131] = {3500,1750, 400,450, 450,1350, 400,450, 450,450, 400,500, 350,500, 400,450, 400,450, 400,500, 400,450, 450,450, 400,500, 400,450, 400,1350, 400,450, 400,450, 450,450, 400,450, 450,450, 450,450, 400,450, 400,1350, 400,1350, 400,1300, 450,450, 400,500, 400,1350, 400,450, 450,450, 400,450, 400,450, 400,450, 450,450, 450,450, 400,450, 450,450, 450,450, 400,450, 400,450, 400,450, 450,450, 400,450, 450,450, 400,500, 400,450, 400,450, 400,500, 400,450, 400,450, 450,450, 400,500, 400,450, 450,450, 400,450, 400,450, 400,450, 450,450, 400,1350, 450,1300, 450,450, 400,500, 400,450, 400,450, 400,450, 400}; 6unsigned int offData[] = {6,6,6}; 7 8void setup() { 9 Serial.begin(115200); 10 Serial.println(); 11} 12 13void loop() { 14 if (digitalRead(GPIO_NUM_0) == 0) { 15 irsend.sendRaw(onData, sizeof(onData)/sizeof(int), khz); 16 } else if (digitalRead(GPIO_NUM_15) == 0) { 17 irsend.sendRaw(offData, sizeof(offData)/sizeof(int), khz); 18 } 19}
##困っていること
irsend.sendRawを使用しています。
これは取得したPanasonicのリモコン(エアコン)のデータが次の通り(Encoding: Unknown)だったからです。
この信号を送信しているのですが、エアコンが反応してくれません。
html
1Encoding : UNKNOWN 2Code : 9DCF5C22 (32 bits) 3Timing[131]: 4 +3500, -1750 + 400, - 450 + 450, -1350 + 400, - 450 5 + 450, - 450 + 400, - 500 + 350, - 500 + 400, - 450 6 + 400, - 450 + 400, - 500 + 400, - 450 + 450, - 450 7 + 400, - 500 + 400, - 450 + 400, -1350 + 400, - 450 8 + 400, - 450 + 450, - 450 + 400, - 450 + 450, - 450 9 + 450, - 450 + 400, - 450 + 400, -1350 + 400, -1350 10 + 400, -1300 + 450, - 450 + 400, - 500 + 400, -1350 11 + 400, - 450 + 450, - 450 + 400, - 450 + 400, - 450 12 + 400, - 450 + 450, - 450 + 450, - 450 + 400, - 450 13 + 450, - 450 + 450, - 450 + 400, - 450 + 400, - 450 14 + 400, - 450 + 450, - 450 + 400, - 450 + 450, - 450 15 + 400, - 500 + 400, - 450 + 400, - 450 + 400, - 500 16 + 400, - 450 + 400, - 450 + 450, - 450 + 400, - 500 17 + 400, - 450 + 450, - 450 + 400, - 450 + 400, - 450 18 + 400, - 450 + 450, - 450 + 400, -1350 + 450, -1300 19 + 450, - 450 + 400, - 500 + 400, - 450 + 400, - 450 20 + 400, - 450 + 400 21unsigned int rawData[131] = {3500,1750, 400,450, 450,1350, 400,450, 450,450, 400,500, 350,500, 400,450, 400,450, 400,500, 400,450, 450,450, 400,500, 400,450, 400,1350, 400,450, 400,450, 450,450, 400,450, 450,450, 450,450, 400,450, 400,1350, 400,1350, 400,1300, 450,450, 400,500, 400,1350, 400,450, 450,450, 400,450, 400,450, 400,450, 450,450, 450,450, 400,450, 450,450, 450,450, 400,450, 400,450, 400,450, 450,450, 400,450, 450,450, 400,500, 400,450, 400,450, 400,500, 400,450, 400,450, 450,450, 400,500, 400,450, 450,450, 400,450, 400,450, 400,450, 450,450, 400,1350, 450,1300, 450,450, 400,500, 400,450, 400,450, 400,450, 400}; // UNKNOWN 9DCF5C22
##試したこと
同じ送信プログラムで、Toshibaリモコン(レコーダー)のリモコン送信を試したところ、
問題なく動作しました。
Toshibaリモコンのデータは次の通りでした。(リモコンはNEC製?)
html
1Encoding : NEC 2Code : A23D48B7 (32 bits) 3Timing[67]: 4 +8900, -4550 + 500, -1700 + 550, - 550 + 500, -1750 5 + 500, - 550 + 500, - 600 + 500, - 600 + 500, -1750 6 + 450, - 600 + 500, - 600 + 500, - 600 + 450, -1750 7 + 550, -1700 + 500, -1750 + 500, -1750 + 500, - 550 8 + 500, -1750 + 550, - 550 + 500, -1750 + 500, - 600 9 + 450, - 600 + 500, -1750 + 500, - 600 + 450, - 600 10 + 500, - 600 + 500, -1750 + 500, - 550 + 550, -1700 11 + 500, -1750 + 500, - 550 + 500, -1800 + 450, -1750 12 + 550, -1700 + 500 13unsigned int rawData[67] = {8900,4550, 500,1700, 550,550, 500,1750, 500,550, 500,600, 500,600, 500,1750, 450,600, 500,600, 500,600, 450,1750, 550,1700, 500,1750, 500,1750, 500,550, 500,1750, 550,550, 500,1750, 500,600, 450,600, 500,1750, 500,600, 450,600, 500,600, 500,1750, 500,550, 550,1700, 500,1750, 500,550, 500,1800, 450,1750, 550,1700, 500}; // NEC A23D48B7 14unsigned int data = 0xA23D48B7; 15
##質問内容
Panasonic製品のリモコンを扱う場合、irsend.sendRawではだめなのでしょうか。
他に策が思い浮かばず困っています。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。