SHARPのBLレコーダ(AQUOS)などのメンテナンスモードに入るリモコンをArduinoで作ってみた。
赤外線リモコンキット(通称フリスクリモコン?)を使えば簡単にできるらしいが、手元にAruduinoと赤外線LEDがあったので作ってみた。
コマンドが3種類あるらしいので、コメントを切り替えて使えるようコードは書いておいた。
あと、AQUOS TVの電源ON/OFFコマンドもいれてある。
使う場合は、自己責任でお願いします。
#include <IRremote.hpp>
#include <IRremote.h>
#define IR_SEND_PIN 5 // 赤外線LED接続ピン
const uint16_t rawData[99] = { 3400, 1700, //8T,4T,
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
425, 425, 425, 425, 425, 425, 425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
425, 425, 425, 425, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //0 data1
425, 1275, 425, 1275, 425, 425, 425, 425, //0,1, 0,1, 0,0, 0,0, //3 data2
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5 data3
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data5
425, 425, 425, 425, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //0 data6
588};
const uint16_t rawData_00[99] = { 3400, 1700, //8T,4T,
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
425, 425, 425, 425, 425, 425, 425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
425, 425, 425, 425, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //0 data1
425, 1275, 425, 1275, 425, 425, 425, 425, //0,1, 0,1, 0,0, 0,0, //3 data2
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5 data3
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data5
425, 425, 425, 425, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //0 data6
588};
const uint16_t rawData_01[99] = { 3400, 1700, //8T,4T,
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
425, 425, 425, 425, 425, 425, 425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
425, 1275, 425, 425, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //1 data1
425, 1275, 425, 1275, 425, 425, 425, 425, //0,1, 0,1, 0,0, 0,0, //3 data2
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5 data3
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data5
425, 1275, 425, 425, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //1 data6
588};
const uint16_t rawData_02[99] = { 3400, 1700, //8T,4T,
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
425, 425, 425, 425, 425, 425, 425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
425, 425, 425, 1275, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //2 data1
425, 1275, 425, 1275, 425, 425, 425, 425, //0,1, 0,1, 0,0, 0,0, //3 data2
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5 data3
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data5
425, 425, 425, 1275, 425, 425, 425, 425, //0,0, 0,0, 0,0, 0,0, //2 data6
588};
const uint16_t rawData1[99] = { 3400, 1700, //8T,4T,
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 425, 425, 1275, 425, 425, 425, 1275, //0,0, 0,1, 0,0, 0,1, //A
425, 1275, 425, 425, 425, 1275, 425, 425, //0,1, 0,0, 0,1, 0,0, //5
425, 1275, 425, 1275, 425, 1275, 425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
425, 425, 425, 425, 425, 425, 425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
425, 425, 425, 1275, 425, 425, 425, 425, //0,0, 0,1, 0,0, 0,0, //2 data1
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data2
425, 425, 425, 1275, 425, 1275, 425, 425, //0,0, 0,1, 0,1, 0,0, //6 data3
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data4
425, 1275, 425, 425, 425, 425, 425, 425, //0,1, 0,0, 0,0, 0,0, //1 data5
425, 1275, 425, 425, 425, 1275, 425, 1275, //0,1, 0,0, 0,1, 0,1, //D data6
588};
void setup() {
Serial.begin(115200); // シリアル通信の初期化
// 赤外線送信モジュールの初期化
IrSender.begin(IR_SEND_PIN, DISABLE_LED_FEEDBACK, 0);
}
void loop() {
//mentenance Command : AA5A8F30F501
IrSender.sendRaw(rawData_00, sizeof(rawData_00)/sizeof(rawData_00[0]), 38);
//mentenance Command : AA5A8F31F502
//IrSender.sendRaw(rawData_01, sizeof(rawData_01)/sizeof(rawData_01[0]), 38);
//mentenance Command : AA5A8F32F511
//IrSender.sendRaw(rawData_02, sizeof(rawData_02)/sizeof(rawData_02[0]), 38);
//SharpTV On/Off ; aa5a8f1216d1
//IrSender.sendRaw(rawData1, sizeof(rawData1)/sizeof(rawData1[0]), 38);
Serial.println("send trun on at " + String(millis()));
delay(5000);
}